Какие советы по сокращению пути к муравьям? - PullRequest
2 голосов
/ 02 сентября 2011

При развертывании моего приложения на Hudson Server (Windows-машине) у меня возникают проблемы с вызовом java.exe, потому что мой путь к классу слишком длинный - Windows выходит из строя после определенной длины.

classpath - это, в основном, сотни Jar файлов, разделенных точкой с запятой

Предположим, что следующий classpath будет слишком большим, если каждый jar явно указан в classpath:

<path id="classpath.project">
    <fileset dir="lib" includes="**/*.jar" />
</path>

Что я могу сделать в муравье, чтобы сократить мой путь к классу?

Ответы [ 2 ]

5 голосов
/ 02 сентября 2011

Поскольку Java 6 поддерживает подстановочные знаки в classpath . В частности, он поддерживает использование * для ссылки на все файлы JAR в данном каталоге (примечание: не *.jar!):

Использование * в качестве пути к классу означает «все файлы JAR в текущем каталоге», а использование lib/* означает «все файлы JAR в каталоге lib/».

Если у вас нет тонн каталогов, этого должно быть достаточно. Однако я не знаю, как использовать этот факт в Ant.

4 голосов
/ 02 сентября 2011

Вы можете гуглить для OneJar. Если вы хотите сделать это самостоятельно, то сгенерируйте «пустой» файл jar, который имеет только манифест. Добавьте в манифест строку «Class-Path: a.jar, another.jar, bla-blub.jar», содержащую все необходимые файлы jar. (Google для "манифеста Class-Path") (может быть сделано с помощью муравья) При условии, что все jar развернуты как обычно, теперь вам нужен только ваш «пустой» файл jar на пути к классам, поскольку JVM теперь будет использовать манифест для поиска всех других jar.

...