Я использую maven для создания банки jar-with-dependencies. Один из файлов jar поставщика в проекте имеет аналогично названные классы с различным случаем. Например, aM.class и am.class.Maven build, по-видимому, перезаписывает классы при создании jar-with-dependencies.
Когда сборка создает jar-файл с jar-with-dependencies, присутствует только aM.class. Кажется, что класс am.class был перезаписан или пропущен. То же самое происходит для всех одинаково названных файлов классов.
У нас есть несколько рабочих обходов, но мне любопытно, почему maven build ведет себя таким образом. Благодаря
Мой ПОМ:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.1</version>
<configuration>
<archive>
<manifest>
<mainClass>com.mytest.MyTest</mainClass>
</manifest>
</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>
<dependencies>
<dependency>
<groupId>com.bloomberglp</groupId>
<artifactId>blpapi3</artifactId>
<version>3.10.1</version>
</dependency>
</dependencies>
Хм это, вероятно, связано с тем, что вы компилируете в Windows, и это не зависит от регистра ОС. Но я не уверен, почему ОС придет в игру при распаковке зависимостей. Попробуйте использовать последнюю версию 'maven-assembly-plugin', которая равна 2.6. – Tunaki
Если у вас действительно есть классы, которые называются идентичными, и их пакет одинаковый, как должен обработчик класса обрабатывать такую вещь? Какой класс будет загружен первым? – khmarbaise
Да ..... это вроде неловко, но я вроде забыл, что окна не чувствительны к регистру. Баннер поставщика должен быть создан в Linux/Solaris. Использование плагина вместо плагина сборки исправляет мою проблему. Спасибо – Roy