如何使用maven执行第三方jar



我使用Liquibase(通过它的Maven插件)来处理数据库迁移。

然而,并不是所有的Liquibase特性都可以通过Maven获得。其中一个是Generate Changelog,只能通过命令行(使用可下载的liquibase.jar)使用如下命令获得:

java -jar liquibase.jar 
--driver=oracle.jdbc.OracleDriver 
--classpath=pathtoclasses:jdbcdriver.jar  
--changeLogFile=com/example/db.changelog.xml 
--url="jdbc:oracle:thin:@localhost:1521:XE"  
--username=scott  
--password=tiger  
generateChangeLog

我如何通过Maven,可移植地执行这个命令?也就是说,我不想将liquibase.jar文件添加到我的项目结构中。

相反,我想把它列为一个依赖项(我可以手动将jar添加到我的本地存储库或Nexus代理),然后在使用Exec Maven Plugin的exec:javaexec:exec目标时引用它,但我看不出如何使用具有这些目标的可执行jar来做到这一点。(

如有任何建议,不胜感激。

谢谢!

我不知道,但也许这会对你有帮助。

尝试使用maven exec插件并将其作为mainClass配置参数:

我从MANIFEST得到它。从你的jar文件

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
      <execution>
        ...
        <goals>
          <goal>java</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <mainClass>liquibase.integration.commandline.Main</mainClass>
      <arguments>
        <argument>--driver=oracle.jdbc.OracleDriver</argument>
        <argument>--changeLogFile=com/example/db.changelog.xml</argument>
        ...
      </arguments>
    </configuration>
  </plugin>

最新更新