Я хочу создать две версии приложения, единственное различие заключается в том, что я хочу обменять в другой версии одного файла .java
. У меня уже есть сборка Maven для создания источника, а также сборка Ant, которая затем упаковывается как zip
со встроенной JRE.С Maven, как мне построить две версии Java-проекта только с одним другим .java-файлом?
Таким образом, я могу изменить свою сборку Ant для создания еще одного файла zip
для этой новой сборки, но что было бы лучшим способом справиться с перестройкой источника с единственным измененным исходным файлом?
Обновленный С Прогресс
Я теперь подклассы стартовый класс с методом main()
, поэтому больше не нужно менять исходные файлы вокруг вместо этого просто нужно передать значение разности для mainClass
в манифесте, и теперь мы есть только одно исходное дерево для сборки.
Так что в моем pom.xml
у меня есть:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>com.companyname.StartClass</mainClass>
<packageName>com.companyname</packageName>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Так я могу иметь несколько таких сборочных модулей, так что я могу построить две сборки только различающиеся в манифесте?
Как вы изменяете этот исходный файл между сборками? Возможно ли достичь другого поведения во время выполнения, обратившись к файлу конфигурации ресурса? BTW, вам не нужно использовать отдельную сборку Ant. [Maven Assembly Plugin] (https://maven.apache.org/plugins/maven-assembly-plugin/) можно настроить в POM вашего проекта, чтобы сделать именно это. –
@GeroldBrosser 'Как изменить исходный файл между сборками? «вот в чем суть дела, и для меня лучшее решение, чем использование файла конфигурации для достижения разницы. –
На самом деле я имел в виду, как вы поочередно меняете содержимое исходного файла. Вы переписываете его из двух разных мест каждый раз? Вы меняете его вручную? –