Как сгенерировать WAR с исходным кодом в Maven? - PullRequest
10 голосов
/ 04 сентября 2010

Я хочу распространить войну моего веб-приложения, созданного с помощью Maven с исходным кодом внутри.Как это сделать с Maven?

Ответы [ 4 ]

14 голосов
/ 04 сентября 2010

Возможно настроить подключаемый модуль maven-war-plugin таким образом, чтобы он включал исходный каталог, так как он был веб-ресурсом:

 <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webResources>
            <resource>
              <directory>${build.sourceDirectory}</directory>
              <targetPath>sources</targetPath>
            </resource>
          </webResources>
        </configuration>
      </plugin>
    </plugins>
  </build>

Исходники java будут включены в каталог sources в войне. Конечно, вы должны адаптировать каталог ресурсов к вашему собственному макету maven.

3 голосов
/ 05 августа 2013

Если вы хотите, чтобы исходные файлы находились в том же каталоге, что и файлы классов, которые вы используете:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webResources>
                    <resource>
                        <directory>${build.sourceDirectory}</directory>
                        <targetPath>WEB-INF/classes</targetPath>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
0 голосов
/ 21 мая 2016

На вашем военном проекте pom.xml:

<build>
    ...
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <attachClasses>true</attachClasses>
                    <classesClassifier>classes</classesClassifier>
                </configuration>
            </plugin>
            ...
        </plugins>
    </pluginManagement>
</build>

В проектах, которые вы хотите использовать, используйте:

<dependency>
    <groupId>my-war-group</groupId>
    <artifactId>my-war-artifact-id</artifactId>
    <version>my-war-version</version>

    <classifier>classes</classifier> <!-- THIS IS THE IMPORTANT LINE! -->
</dependency>
0 голосов
/ 05 декабря 2012

Обычно я думаю, что вы пошли бы так: (сюда не входят исходные файлы, но они представлены в виде отдельных файлов)

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-javadocs</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
...