将构建任务添加到maven pom项目

时间:2016-04-01 08:17:37

标签: java maven maven-compiler-plugin

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

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

我的问题是:

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

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

1 个答案:

答案 0 :(得分: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>