Компилировать несколько версий одного и того же программного обеспечения Java из Ant - PullRequest
0 голосов
/ 13 июля 2010

Я ищу способ скомпилировать несколько разновидностей моего программного обеспечения Java с использованием Ant.Под ароматами я имею в виду, например, пробную и полную версию.

В коде у меня есть переменная

public static final boolean TRIAL

, которая указывает, является ли она пробной или полной версией.Было бы очень хорошо иметь возможность установить его из Ant и автоматически скомпилировать обе версии.

Я не мог найти хороший способ сделать это, хотя я уверен, что я не первый, кто сталкивается с этой проблемой.

В CI просто используйте "ifdef" и установитеопределение из Makefile ....

Ответы [ 3 ]

1 голос
/ 13 июля 2010

Я бы создал файл шаблона и использовал фильтры копирования ANT, чтобы изменить значение перед компиляцией.Я никогда не делал этого с исходным кодом, но довольно часто использовал его для файлов конфигурации.

В исходном файле шаблона вы можете сделать:

public static final boolean TRIAL = @TRIAL_VALUE@ 

Затем вмуравей build.xml, вы могли бы сделать это:

<filter token="TRIAL_VALUE" value="true" />
<copy tofile="${your.target.file.name.here}" filtering="true">
  <fileset dir="${location.of.your.template}">
    <include name="${template.file}" />
  </fileset>
</copy>

Я не уверен, что мне нравится идея сделать это с реальным исходным файлом (я думаю, есть хороший шанс, что это разозлит IDE).Вы можете рассмотреть возможность использования файла конфигурации, встроенного в jar (и использовать технику фильтра копирования на , что вместо )

1 голос
/ 13 июля 2010

Посмотрите на это: http://code.google.com/p/preprocessor/
Позволяет вам делать такие вещи:

//#ifdef CUSTOMER1
private String abc = "abc";
//#else
private String abc = "cba";
//#endif  

и устанавливать его из муравья

0 голосов
/ 13 июля 2010

Если у вас есть несколько версий вашего программного обеспечения, чтобы избежать легкого взлома ( java decompiler ), я настоятельно рекомендую вам использовать параллельный набор источников, где пробные версии являются просто ложными, и так далее.

С помощью ANT вы можете выбрать источник именно той версии, которую будете использовать.

Конечно, это дублирует источники, но является одним из возможных решений без использования внешнего программного обеспечения (как предыдущий препроцессор)

...