0

我是 Maven 的新手,我刚读完 Sonatype 指南,我对 maven 提供的功能非常满意。我创建了一个应用程序分发 (.zip) 包,我想知道是否有办法使用 maven 作为安装程序。我不是说 maven 安装到本地存储库中,我的意思是通过以下示例进行解释:

我有一个包含 jar 文件、一个 .sql 脚本、一个 /lib 显然还有一个 pom.xml 文件的文件夹。当我执行“mvn”命令时,我希望 maven 为我安装这个项目。所以 maven 应该: - 复制 ${TOMCAT_HOME}\webapps 目录中的 jar 文件。- 在 postgresql 数据库上执行 sql 脚本 - 复制 c:\myLibs 中的 \lib 目录 - 等 在此过程中,它还应该进行一些检查(例如 TOMCAT_HOME 在系统上设置?Postgres 是否打开?等等)和向用户询问一些参数(例如“安装将重置数据库是否要继续?”或“请输入数据库密码:”。

是否有一个 Maven 插件可以帮助做到这一点?如果没有,是否有专门用于创建“安装程序”的类似 maven 的应用程序?它是一个标准的、广泛的应用程序吗?非常感谢你的帮助!

4

1 回答 1

0

添加到你的 pom

 <distributionManagement>
                <repository>
                        <id>sonatype.internal</id>
                        <name>Internal Release Repository</name>
                        <url>http://sonatypeAddress:sonatypePort/context</url>
                </repository>
 </distributionManagement>

插件部分:

              <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-scm-plugin</artifactId>
                        <configuration>
                                <tag>${build.tag}</tag>
                                <username>${scm.username}</username>
                                <password>${scm.password}</password>
                        </configuration>
               </plugin>
  • antrun 插件 - 做你想要的。

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.7</version>
                <dependencies>
                    ...
                </dependencies>
                <executions>                    
    
                    <execution>
                        <id>install</id>
                        <phase>install</phase>
                        <configuration>
                            <target>
                                                         <delete dir="mylocalization" />
                                <copy file="target/out/my.jar" tofile="mylocalication" />
    
                                <copy todir="mylocalization/doc">
                                    <fileset dir="target/doc" />
                                </copy>
                                <copy todir="mylocalization/somethingMore">
                                    <fileset dir="target/more">
                                        <include name="a.txt" />
                                        <include name="b*.txt" />
                                    </fileset>
                                </copy>
    
    
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
    
                </executions>
            </plugin>
    
  • 另见maven-wagon

于 2013-08-23T07:20:34.520 回答