首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >exec-maven-plugin:我可以运行exec:exec goal而不先运行toolchain:toolchain goal吗?

exec-maven-plugin:我可以运行exec:exec goal而不先运行toolchain:toolchain goal吗?
EN

Stack Overflow用户
提问于 2020-10-01 00:59:32
回答 1查看 215关注 0票数 0

我继承了一个只在Java1.8中编译和运行的应用程序。因为我不想让Java 1.8成为我机器上的主要jvm,所以我觉得管理它的最好方法是通过Maven工具链。配置Maven编译器插件非常简单,但我还想添加通过Maven执行服务的功能,以便利用我为1.8配置的工具链。

挑战在于,我似乎无法让exec-maven-plugin使用文档中的工具链。根据文档,我认为exec-maven-plugin会根据需要使用maven-toolchains plugin。但是,为了让exec:exec使用正确的工具链,我必须使用:

mvn toolchains:toolchain exec:exec

这是可行的,但documentation使我认为工具链将自动配置,而不需要我执行toolchains:toolchain目标。

pom.xml

代码语言:javascript
复制
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-toolchains-plugin</artifactId>
      <executions>
        <execution>
          <goals>
            <goal>toolchain</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <toolchains>
          <jdk>
            <version>1.8</version>
          </jdk>
        </toolchains>
      </configuration>
    </plugin>
        
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <configuration>
        <executable>java</executable>
        <arguments>
          <argument>-classpath</argument>
          <classpath></classpath>
          <argument>com.my.Main</argument>
        </arguments>
      </configuration>
    </plugin>
  </plugins>
</build>

toolchains.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
  <toolchain>
    <type>jdk</type>
    <provides>
      <id>1.8</id>
      <version>1.8</version>
    </provides>
    <configuration>
      <jdkHome>/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

附加说明:我还尝试使用以下配置配置exec-maven-plugin在exec:java上运行:

代码语言:javascript
复制
<configuration>
  <mainClass>com.my.Main</mainClass>
</configuration>

然而,这不起作用,甚至在mvn toolchains:toolchain exec:java中也不起作用。

有没有办法将其配置为只需运行mvn exec:execmvn exec:java

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-01 05:07:03

我认为答案是你必须确保toolchains插件本身是你构建的一部分。或者这就是the relevant documentation seems to say。(我在上面看到了这一点;我要说的是是的,这是必需的。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64142374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档