Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将构建任务添加到maven pom项目_Java_Maven_Maven Compiler Plugin - Fatal编程技术网

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

Java 将构建任务添加到maven pom项目,java,maven,maven-compiler-plugin,Java,Maven,Maven Compiler Plugin,需要扩展现有的maven pom项目pom,该项目当前收集并打包资源,以验证某些资源。 在同一个项目中,我创建了一个java源目录src/main/java,并在其中创建了一个小型java类来验证一些资源。此外,我还在pom中配置了maven编译器和exec maven插件 java类在IDE中运行良好,但在执行mvn clean install时失败,因为它找不到已编译的类文件。这是因为编译/测试编译阶段不适用于pom打包项目 我的问题是: 我可以修改编译器插件以在不同于默认编译阶段的阶段执

需要扩展现有的maven pom项目
pom
,该项目当前收集并打包资源,以验证某些资源。 在同一个项目中,我创建了一个java源目录
src/main/java
,并在其中创建了一个小型java类来验证一些资源。此外,我还在pom中配置了maven编译器和exec maven插件

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

我的问题是:

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

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

是的,您可以配置maven编译器插件,以便在pom包的
阶段运行编译

<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>

org.apache.maven.plugins
maven编译器插件
3.5.1
编译
包裹
org.codehaus.mojo
execmaven插件
1.4.0
JAVA
包裹
com.example.validate.App

这里有一些固有的错误。有Java代码要编译的
pom
项目?你到底想在这里干什么?你的问题和最终目标是什么?你目前的项目结构是什么?相关:从字面上说,这是虐待<代码>包阶段不用于编译源代码。