Я столкнулся с этой проблемой при попытке создать исполняемую банку с maven в intellij 12. Оказалось, что поскольку файл манифеста Java не содержит путь к классу, файл свойств log4j не может быть найден на корневом уровне (где файл jar был выполнен из.)
FYI Я получал регистратор следующим образом:
Logger log = LogManager.getLogger(MyClassIWantedToLogFrom.class);
И мне удалось заставить его работать с файлом pom, который включили это:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.mycompany.mainPackage.mainClass</mainClass>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path> <!-- need to add current directory to classpath properties files can be found -->
</manifestEntries>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Я думаю типичный способ, которым это сделано, выбор 2 выше. Это - то, что я использую и что я видел сделанный многими библиотеками и компаниями.
, Если Вы находите, это не работает на Вас, затем любой ценой используют что-то еще.
Удача.
Я предпочитаю 2 конфигурации путь.
Установка все общие настройки с помощью 'Всех конфигураций' объект в окна свойств проекта. После того, как это разделило настройки. И это сделано. Давайте пойдем, кодировав.
Также существует очень хорошая функция, названная 'Пакетная сборка', которая создает указанные конфигурации по очереди.
Несколько проектов являются лучшим способом пойти - это - конфигурация, я наиболее широко не видел в многочисленном никаких из проектов, с которыми я столкнулся.
Тем не менее могло бы быть также возможно реализовать третью опцию путем изменения vcproj файлов на лету от внешних инструментов (как пользовательский vbscript), который Вы могли вызвать от make-файла. Можно использовать переменные оболочки для управления поведением инструмента.
Примечание, что необходимо все еще использовать Visual Studio использования для создания сборки, make-файл, должно только запустить внешний инструмент при необходимости, чтобы сделать модификации и затем следовать за этим фактической командой
сборкиЯ использую Visual Studio 6.0 (Все еще) из-за проблем, которые препятствуют тому, чтобы мы Мигрировали на VS2005 или более новый. При восстановлении причин серьезные проблемы (все повреждается)... столь многие из нас рассматривают лоббирование миграции к GnuC ++ продвигающийся структурированным способом в конечном счете получить нас от лицензированных продуктов Visual Studio и на Eclipse и Linux.
В Unix/Linux легко создать для всех конфигураций.. таким образом, я не могу верить тому, что время и приемник производительности это должно попытаться выполнить ту же задачу в Visual Studio. Для VS6.0 я до сих пор нашел, что только наличие двух отдельных проектов, кажется, осуществимо. Я еще не попробовал несколько метод конфигурации, но буду видеть, работает ли он в более старом VS6.0.
Почему бы не пойти для версии 1 и генерировать второй набор файлов проекта от первого использования сценария или чего-то. Тем путем Вы знаете, что различиями являются ПРОСТО части, требуемые создавать dll или статический lib.