良い時間!
私たちのチームは Maven を使用しています。プロジェクト モジュールの 1 つにプラグイン (maven-jibx-plugin) があり、(このユース ケースでは) 独自の jar への依存関係が必要です。
<plugin>
<groupId>org.jibx</groupId>
<artifactId>jibx-maven-plugin</artifactId>
<version>${jibx.version}</version>
<executions>
<execution>
<id>main-schemas</id>
<phase>generate-sources</phase>
<goals>
<goal>schema-codegen</goal>
</goals>
<configuration>
<schemaLocation>
...
</schemaLocation>
<includeSchemas>
...
</includeSchemas>
<customizations>
<customization>${basedir}/src/main/resources/customizations/customization.xml
</customization>
</customizations>
<verbose>true</verbose>
</configuration>
</execution>
<execution>
<id>bind</id>
<phase>process-classes</phase>
<goals>
<goal>bind</goal>
</goals>
<configuration>
<schemaBindingDirectory>
${basedir}/src/main/resources/bindings
</schemaBindingDirectory>
<includeSchemaBindings>
<includeSchemaBinding>*.xml</includeSchemaBinding>
</includeSchemaBindings>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>${project.parent.groupId}</groupId>
<artifactId>proprietary-jar</artifactId>
<version>${project.parent.version}</version>
</dependency>
</dependencies>
</plugin>
問題は、プロジェクトをローカルでビルドすると (ジェンキンがインストールされているリモート マシンのコマンド ラインからでも)、すべてが正常にビルドされますが、ジェンキン インスタンスがビルドを試みると、次のようなメッセージが表示されてビルドが失敗することですUnable to find class 'class-name-from-the-proprietary-jar'
。 . この問題は、プラグインの依存関係を追加する前にローカルで発生しました..
プラグインの依存関係を解決しない jenkins maven プラグインの機能がいくつかあるようです。または、jenkins maven プラグインのクラスローディングのよく知られた機能がある可能性があります (JiBX は、そのような構成で独自のクラスをロードしますSchemaRootBase.class.getClassLoader().loadClass(cname)
:プラグインは、必要なクラスに関する知識を提供する必要があります)...誰かが回避策を提案できますか?
更新:
jenkins インスタンスの JAVA_HOME 変数が に設定されていることが判明しました/usr/java/jdk1.7.0_25
が、私の maven-compiler-plugin には<target>1.6</target>
. 問題は1.7 Javaバージョンにあるのでしょうか?