У меня есть модуль, и я использую maven-assembly-plugin для создания исполняемого баннера с зависимостями. При запуске установки, плагин дописывает имя проекта («окрестности») перед именем баночки и все содержимое фляги, то есть:maven-assembly-plugin, предваряющий путь к классам
$ jar -tvf vicinity-confirm-assets.jar | more
0 Tue Jan 20 17:18:10 EST 2015 META-INF/
213 Tue Jan 20 17:18:08 EST 2015 META-INF/MANIFEST.MF
0 Tue Jan 20 17:18:10 EST 2015 vicinity/
0 Thu Nov 13 20:52:16 EST 2014 vicinity/META-INF/
134 Thu Nov 13 20:52:14 EST 2014 vicinity/META-INF/MANIFEST.MF
0 Thu Nov 13 20:52:06 EST 2014 vicinity/org/
0 Thu Nov 13 20:52:10 EST 2014 vicinity/org/boon/
0 Thu Nov 13 20:52:10 EST 2014 vicinity/org/boon/cache/
0 Thu Nov 13 20:52:10 EST 2014 vicinity/org/boon/collections/
0 Thu Nov 13 20:52:10 EST 2014 vicinity/org/boon/concurrent/
...
0 Tue Jan 20 17:17:50 EST 2015 vicinity/META-INF/maven/com.thingy.webapp/confirmassets/
2208 Tue Jan 20 17:17:44 EST 2015 vicinity/META-INF/maven/com.thingy.webapp/confirmassets/pom.xml
127 Tue Jan 20 16:25:22 EST 2015 vicinity/META-INF/maven/com.thingy.webapp/confirmassets/pom.properties
Вот плагин XML:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.thingy.webapp.confirmassets.ToolbarResourcesUrlTester</mainClass>
</manifest>
</archive>
<descriptors>
<descriptor>src/main/resources/dist.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
и вот dist.xml:
<?xml version='1.0' encoding='UTF-8'?>
<assembly>
<id>confirm-assets</id>
<formats>
<format>jar</format>
</formats>
<dependencySets>
<dependencySet>
<scope>runtime</scope>
<unpack>true</unpack>
<unpackOptions>
<excludes>
<exclude>**/LICENSE*</exclude>
<exclude>**/README*</exclude>
</excludes>
</unpackOptions>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/resources/META-INF/services</directory>
<outputDirectory>META-INF/services</outputDirectory>
</fileSet>
</fileSets>
</assembly>
ETA: «окрестности» перед именем исходит от родителя пОМ-х <build><finalName>vicinity</finalName>...</build>
. Но нет смысла добавлять это к каждому файлу и зависимости, включенным в банку. Я попытался переопределить пустой тег <finalName></finalName>
в моем модуле, но затем я получил предел. Как мне избавиться от этого вообще и просто включить правильно названное содержимое в банку?
ТАКЖЕ: Проблема, которую я имею что когда я пытаюсь запустить мой основной класс из командной строки, я получаю:
$ java -jar vicinity-confirm-assets.jar
Error: Could not find or load main class com.thingy.webapp.confirmassets.ToolbarResourcesUrlTester
Кроме того, есть два Manifest.mf файлов.
$ jar -tvf vicinity-confirm-assets.jar | grep MANI
213 Tue Jan 20 18:07:26 EST 2015 META-INF/MANIFEST.MF
134 Thu Nov 13 20:52:14 EST 2014 vicinity/META-INF/MANIFEST.MF
Первый:
Manifest-Version: 1.0
Built-By: barclaydunn
Build-Jdk: 1.6.0_65
Created-By: Apache Maven 3.1.1
Main-Class: com.thingy.webapp.confirmassets.ToolbarResourcesUrlTest
er
Archiver-Version: Plexus Archiver
Второе:
Manifest-Version: 1.0
Built-By: slandelle
Build-Jdk: 1.7.0_65
Created-By: Apache Maven 3.2.2
Archiver-Version: Plexus Archiver
Я предполагаю, что есть два из-за, и добавляя слева приходит, тот факт, что это ребенок модуль. Второй - из родительского помпа, я предполагаю.
Я пытаюсь сделать что-то, что не может/не должно быть сделано?