maven создает zip с jar и еще несколькими файлами

Я не понимаю maven. Лучше используйте ant, но ... Мне удалось создать банку (с зависимостями или без них), мне удалось скопировать скрипт бегуна летучей мыши близко к банке, но теперь я хочу создать zip с этой банкой и этой летучей мышью . Итак, я использую плагин сборки и получаю BUUUM !!!! CADAAAM! В моей конфигурации это происходит так, что он выполняется параллельно с упаковкой jar. Я написал файл сборки:

    <assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>jg</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/classes</directory>
            <outputDirectory>/123</outputDirectory>
            <excludes>
                <exclude>assembly/**</exclude>
                <exclude>runners/**</exclude>
            </excludes>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <useProjectArtifact>true</useProjectArtifact>
            <unpack>true</unpack>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
</assembly>

Затем я связал maven-assembly-plugin:

<plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.2.1</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
                <inherited>false</inherited>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>by.dev.madhead.lzwj.Main</mainClass>
                            <addClasspath>true</addClasspath>
                        </manifest>
                    </archive>
                    <descriptors>
                            <descriptor>src/main/resources/assembly/assembly.xml</descriptor>
                            <!-- <descriptorRef>jar-with-dependencies</descriptorRef> -->
                    </descriptors>
                </configuration>
            </execution>
        </executions>
    </plugin>

Теперь я получаю это в ./ targe t :

  1. runner.bat
  2. jar_without_dependencies.jar (это из maven-jar-plugin, верно?)
  3. jar_without_dependencies.jar

И третий меня злит. Он содержит: enter image description here А каталог 123 содержит: enter image description here

Как вы видите, я получаю jar с распакованными зависимостями, EXCLUDED DIRS !!!! и dir 123, что на самом деле то, что я хочу (О, плагин сборки сделал это !!!).

Я хочу получить jar с зависимостями и исправить манифест с classpath. Как вариант, мне нужен jar с распакованными зависимостями (я знаю о false в сборке, но не могу заставить его работать). Я хочу изменить / 123 на / и получить ОБЫЧНЫЙ JAR БЕЗ ИСКЛЮЧЕННЫХ ФАЙЛОВ !!! Мне нужны две отдельные задачи для создания jar и zip (выполняется ли это с профилями в maven ??). Как и в случае с ant, я бы написал что-то вроде этого:

    <target name="jar_with_deps" depends-on="compile">
        <jar>
            here i copy classes (excluding some dirs with runner script), and build manifest
        </jar>
        <copy>
            copy bat file from src/main/resources/runner/runner.bat
        </copy>
    </target>
    <target name="zip" depends-on="jar_with_deps">
        <zip>
            Get jar from previous target, get runner.bat. Put them in zip
        </zip>
    </target>

Извините, если я слишком выразителен, но я действительно зол на это неявное поведение. Я действительно застрял в этом.

5
задан madhead 5 December 2011 в 14:43
поделиться