Разница в выпуске Maven: подготовьте и установите jar-файлы при использовании jython
Я использую Maven 3.0.4 вместе с Jython 2.5.2 и Pygments 1.5 (через яйцо). Я настроил плагин jython-compile-maven-как
<plugin>
<groupId>net.sf.mavenjython</groupId>
<artifactId>jython-compile-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jython</goal>
</goals>
</execution>
</executions>
<configuration>
<libraries>
<!-- Install the latest pygments library -->
<param>Pygments</param>
</libraries>
</configuration>
При запуске mvn install созданный JAR содержит библиотеку Pygments, встроенную в папку Lib. Это гарантирует, что весь мой код работает нормально.
Проблема начинается, когда я запускаю команду mvn release: prepare. В этом случае только мой код попадает внутрь JAR, а библиотека Pygments не учитывается. Если я загляну в папку target/classes, она содержит и мой код, и необходимую библиотеку фрагментов.
Любая идея о том, что я могу пропустить или делаю неправильно?
1 ответ
Я смог самостоятельно решить проблему после большого количества пробных заездов. Решение использует настройку maven-jar-plugin для включения всех файлов в папку target/classes. Таким образом, и установка, и выпуск: подготовьте цели, соберите точно такой же двоичный файл.
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>**</include>
</includes>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Вся запись сборки, которую я использую для своего проекта, выглядит так:
<build>
<plugins>
<!-- set compilation properties -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- Generate the project-javadoc.jar for OSS repository -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<!-- Generate the project-sources.jar for OSS repository -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
</plugin>
<!-- Install Jython and Pygments library -->
<plugin>
<groupId>net.sf.mavenjython</groupId>
<artifactId>jython-compile-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jython</goal>
</goals>
</execution>
</executions>
<configuration>
<libraries>
<!-- Install the latest pygments library -->
<param>Pygments</param>
</libraries>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>**</include>
</includes>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Надеюсь это поможет.