私は、ソースを生成するためにjaxb2-maven-plugin (mojohaus one)が使用されるmavenプロジェクトを持っています。2つのLinuxパスがmavenの同じファイルを参照するときを検出するにはどうすればよいですか?
ジェンキンスで呼び出されると、生成されたすべてのクラスが重複しているために失敗します。
いくつかの調査の後、私は
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ my-maven-module ---
[DEBUG] Using compiler 'javac'.
[DEBUG] Source directories: [/var/lib/jenkins/jobs/MY_JENKINS_JOB/workspace/myProject/src/main/java
/var/lib/jenkins/jobs/MY_JENKINS_JOB/workspace/myProject/target/generated/src/main/java
/appli/projects/jenkins/jobs/MY_JENKINS_JOB/workspace/myProject/target/generated/src/main/java]
それが表示されますのmaven-コンパイラプラグインで、この構成にそれを追跡でき、/var/lib/jenkins
フォルダが/appli/projects/jenkins
にリンクされています。そして、JAXB2-のmaven-pluginの中で、我々が設定された構成が
+=================== [16 XJC Arguments]
|
| [0]: -xmlschema
| [1]: -encoding
| [2]: UTF-8
| [3]: -p
| [4]: fr.erdf.sge.f5.asm
| [5]: -d
| [6]: /var/lib/jenkins/jobs/MY_JENKINS_JOB/workspace/myProject/target/generated/src/main/java
| [7]: -classpath
| [8]: /logiciels/maven/apache-maven-3.1.1/conf/logging/
| [9]: -extension
| [10]: -episode
| [11]: /appli/projects/jenkins/jobs/MY_JENKINS_JOB/workspace/myProject/target/generated/src/main/java/META-INF/sun-jaxb.episode
| [12]: -Xvisitor
| [13]: -Xvisitor-package:com.massfords.humantask
| [14]: m-maven-supermodule/my-maven-module/src/main/resources/xsd/asm/asmbuilder.xsd
| [15]: m-maven-supermodule/my-maven-module/src/main/resources/xsd/import_export_xml.xsd
|
+=================== [End 16 XJC Arguments]
である私たちは、違いを見ることができ、ここで、既に存在している:-d
引数は-episode
引数が/appli/projects/jenkins/
を指し/var/lib/jenkins
を指します。
そして、それはJAXB2プラグインのここに記載された
[DEBUG] Adding existing JAXB outputDirectory [/appli/projects/jenkins/jobs/MY_JENKINS_JOB/workspace/myProject/target/generated/src/main/java] to Maven's sources.
EDIT 1設定が
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<configuration>
<arguments>
<argument>-Xvisitor</argument>
<argument>-Xvisitor-package:com.massfords.humantask</argument>
</arguments>
<sources>
<source>${project.basedir}/src/main/resources/xsd/import_export_xml.xsd</source>
<source>${xsd}</source>
</sources>
<packageName>myPackage</packageName>
<outputDirectory>${jaxb.src}</outputDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>com.massfords</groupId>
<artifactId>jaxb-visitor</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
</plugin>
あるとして生成されたソースフォルダは、ジェンキンスパスに追加されることをこのプラグインの実行の終わりです
jaxb生成フォルダにはクラスが1つしか含まれていません。私は実際にconfigであり、絶対にパスを解決しません。これはその設定を複製します。
「生成されたすべてのクラスが重複している」とは分かりません。プラグインは、実行前にデフォルトで生成されたクラスを削除します([clearOutputDir](http://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/xjc-mojo.html#clearOutputDir)を参照)。あなたが持っているエラーメッセージとPluginのPOM設定を投稿できますか? – Tunaki