Добавить созданный Maven сайт в созданный пакет - PullRequest
2 голосов
/ 24 февраля 2010

Чтобы поставить Jar «все в одном» для нашего проекта, мы задаемся вопросом, возможно ли включить созданный проектом сайт (созданный с помощью плагина сайта) в созданный пакет проекта? Идея этого очень проста: у нас есть проект с именем «sample», который демонстрирует использование нашего API, и мы хотим предоставить пользовательскую документацию по API и его использованию в одном комплекте. Возможно ли использовать Maven для создания такой банки?

Заранее спасибо!

Ответы [ 3 ]

5 голосов
/ 24 февраля 2010

Использование site:jar, а затем плагин сборки для создания связки всего возможного.

3 голосов
/ 10 мая 2011

Я публикую здесь, чтобы задокументировать решение для создания файла war с использованием сайта, созданного maven, включенного в недавний Maven 3. Я обернул необходимые плагины сборки в профиль, который активируется Хадсоном, устанавливая системное свойство BUILD_NUMBER. В дополнение к добавлению каталога сайта в войну, эта конфигурация создает артефакт -javadoc.jar (за это отвечает отдельный maven-javadoc-плагин с выполнением attach-javadocs, и вы можете удалить его, если не требуется).

<profiles>
    <!-- We want the javadoc jar and the site within the war only when building on Hudson -->
    <profile>
        <activation>
            <property>
                <name>BUILD_NUMBER</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.0-beta-3</version>
                    <configuration>
                        <reportPlugins>
                            <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-project-info-reports-plugin</artifactId>
                            </plugin>
                            <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-javadoc-plugin</artifactId>
                            </plugin>
                        </reportPlugins>
                    </configuration>
                    <executions> 
                        <execution> 
                            <id>attach-site</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals> 
                        </execution> 
                    </executions> 
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <webResources>
                            <resource>
                                <!-- this is relative to the pom.xml directory -->
                                <directory>${project.build.directory}/site</directory>
                                <targetPath>doc</targetPath>
                            </resource>
                        </webResources>
                    </configuration>
                </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>
            </plugins>
        </build>
    </profile>
</profiles>

Здесь тот же профиль, но для Maven2. Это полезно, если у вас есть конфигурация проекта hudson, использующая плагин maven2 hudson.

<profiles>
    <!-- We want the javadoc jar and the site within the war only when building on Hudson -->
    <profile>
        <activation>
            <property>
                <name>BUILD_NUMBER</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <webResources>
                            <resource>
                                <!-- this is relative to the pom.xml directory -->
                                <directory>${project.build.directory}/site</directory>
                                <targetPath>doc</targetPath>
                            </resource>
                        </webResources>
                    </configuration>
                </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>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>2.2</version>
                    <executions> 
                        <execution> 
                            <id>attach-site</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals> 
                        </execution> 
                    </executions> 
                </plugin>
            </plugins>
        </build>
        <reporting>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                </plugin>
            </plugins>
        </reporting>
    </profile>
</profiles>
0 голосов
/ 10 марта 2016

Хитрость заключается в том, чтобы сконфигурировать maven-site-plugin для генерации сайта на этапе, предшествующем пакету (например, prepare-package), а затем включить созданный сайт в веб-приложение для правильной настройки maven-war-plugin.1002 *

Здесь вы можете найти пример проекта с использованием этой конфигурации. Здесь живое демо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...