【问题标题】:add build tasks to maven pom project将构建任务添加到 maven pom 项目
【发布时间】:2016-07-20 23:13:35
【问题描述】:

一个现有的maven pom项目<packaging>pom</packaging>当前收集和打包资源需要扩展来验证一些资源。 在同一个项目中,我创建了一个 java-source 目录src/main/java,并在其中创建了一个小型 java 类来验证一些资源。另外我在pom中配置了maven-compiler和exec-maven插件。

java 类在 IDE 中运行良好,但是当我执行 mvn clean install 时它失败了,因为它找不到已编译的类文件。这是因为 compile/test-compile 阶段不适用于 pom 打包的项目。

我的问题是:

  • 我能否修改编译器插件以在与默认编译阶段不同的阶段执行(编译)。 (我尝试添加执行标签但没有成功)
  • 为什么要执行 exec-maven 插件,因为这是在测试阶段定义的,根据文档,它不是 pom 包的一部分。
  • 还有其他可能在 pom 中运行此验证任务吗?

将包装从 pom 修改为 jar 是一种政治上的次优解决方案。

【问题讨论】:

  • 这里有本质上的错误。 pom 项目需要编译 Java 代码?你真的想在这里做什么?你的问题和最终目标是什么?你目前的项目结构是什么?相关:XY problem

标签: java maven maven-compiler-plugin


【解决方案1】:

可以,可以配置maven-compiler-plugin在pom打包的package阶段运行编译。

<build>
   <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.5.1</version>
         <executions>
            <execution>
               <goals>
                  <goal>compile</goal>
               </goals>
               <phase>package</phase>
            </execution>
         </executions>
      </plugin>
      <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>exec-maven-plugin</artifactId>
         <version>1.4.0</version>
         <executions>
            <execution>
               <goals>
                  <goal>java</goal>
               </goals>
               <phase>package</phase>
            </execution>
         </executions>
         <configuration>
            <mainClass>com.example.validate.App</mainClass>
         </configuration>
      </plugin>
   </plugins>
</build>

【讨论】:

  • 这是滥用,字面意思。 package 阶段不适用于编译源代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2011-05-09
  • 2014-03-16
  • 2013-10-24
  • 1970-01-01
  • 2011-07-12
相关资源
最近更新 更多