我正在尝试使用此处描述的解决方案来解决恼人的"生命周期配置未涵盖的插件执行:org.codehaus.mojo:build-helper-maven-plugin:1.7:add-source(执行:默认,阶段:生成 -来源)"当我将以下插件放在我的pom.xml上时:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals><goal>add-source</goal></goals>
<configuration>
<sources>
<source>src/bootstrap/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但是当我运行mvn clean install时,我得到了这个:
原因:在存储库中找不到POM'org.eclipse.m2e:lifecycle-mapping':无法从任何存储库下载工件
有没有人知道如何让m2e和maven开心?
我想知道如何使用Maven和Eclipselink 2.5生成静态元模型.通过在运行Eclipselink 2.4时将这些行添加到pom.xml,它运行良好.
// Generate meta model for eclipselink 2.4 (does not work for 2.5)
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<compilerArguments>-Aeclipselink.persistencexml=src/main/resources/META-INF/persistence.xml</compilerArguments>
<processors>
<processor>org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor</processor>
</processors>
<outputDirectory>${project.build.directory}/generated-sources/meta-model</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但似乎自2.4以来出现了一些变化,因为我得到了以下错误:
[INFO] javac option: -proc:only
[INFO] javac option: -Aeclipselink.persistencexml=src/main/resources/META-INF/persistence.xml
[INFO] javac option: -processor
[INFO] javac option: org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor
[INFO] javac option: -s
[INFO] javac option: /home/asdf/target/generated-sources/meta-model
[INFO] diagnostic error: Annotation processor 'org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor' not found
[INFO] diagnostic warning: Annotation processing without compilation requested but no processors …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用maven-processor-plugin生成JPA元模型java文件,并设置我的pom.xml如下所示.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-proc:none</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<!-- source output directory -->
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
<overwrite>true</overwrite>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
实际上,我想生成元模型文件(Entity_.java)到相应实体(Entity.java)的相同包中.因此,我在插件中设置outputDirectory为
<outputDirectory>${basedir}/src/main/java</outputDirectory>
Run Code Online (Sandbox Code Playgroud)
第一次运行是好的,但是从以后执行元模型java文件重新生成时,插件总是会出现关于文件复制的错误.
我的问题是 - 有没有办法配置插件,以便它可以在重新生成过程中覆盖现有的文件?
事实上,要解决
这两个都非常不方便,我希望你们能给我一个合适的解决方案.
我有一个Maven插件,它为我的java项目生成源代码并将它们放入' target/generated-sources '文件夹中.我需要在编译时使用这些源代码.我想在修改它的时候将它们放在我的项目中,已经生成了.当然,我想把它们放在' src '文件夹下的正确文件夹中,而不是' target/generated-sources '.我如何使用Maven组织这个?
换句话说,我希望能够:
通过运行我的特殊源生成插件的一些目标来生成我需要的源代码(已经完成,源代码包含我指定的包)
将这些生成的源移动到标准Maven布局的' src/main/java/... '文件夹中.
从' target/generated-sources '文件夹中删除它们,因为否则mvn clean install命令会引发错误,说明我有"重复的类".实际上,如果我只是将生成的源从目标复制到src - 我必须使用相同名称和包的类,尽管其中一个位于目标文件夹中.
哪个Maven插件可以用这个?我想这是一个典型的任务.
maven ×4
jpa ×2
maven-plugin ×2
eclipselink ×1
hibernate ×1
java ×1
m2e ×1
m2eclipse ×1
maven-2 ×1