簡體   English   中英

maven,部署桌面應用程序

[英]maven, deploy a desktop application

我正在從螞蟻切換到maven。

為了簡單起見,我的應用程序是一個連接到數據庫的swing應用程序。 我希望它被打包在一個jar文件中。
該應用程序需要一個外部庫,即Microsoft sql server庫,包含在一個jar文件中:sqljdbc4-3.0.jar。

所以我試着包含這個庫:

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>3.0</version>
    </dependency>

但是當啟動jar時,我得到了例外:

java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

其他stackoverflow問題已經記錄了這個問題; 我正在談論這個只是為了達到目的。 我的想法(也許是天真的)如下,我想

  • 用我的代碼創建一個jar。
  • 創建一個包含在目錄(lib)中的所有庫的分發。
  • 清單文件正確引用所有庫。

搜索周圍,我發現每個問題都由不同的maven插件執行:jar插件,依賴插件和程序集插件。
這是要走的路嗎?
我感覺不對,因為我不喜歡maven會輕松處理“常規”配置,這三個插件的解決方案似乎有點過於復雜。

您需要將這些插件添加到pom

        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib</classpathPrefix>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <descriptor>src/main/assembly/assembly.xml</descriptor>
            </configuration>
        </plugin>

的src /主/組件/ assembly.xml

<assembly>
    <id>assembly</id>
    <formats>
        <format>zip</format>
    </formats>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/lib</outputDirectory>
            <unpack>false</unpack>
        </dependencySet>
    </dependencySets>
</assembly>

運行程序集

mvn clean package assembly:single

這是maven的方式。 順便說一下:jar插件和依賴插件總是包含在maven構建中,不需要配置它們。

另外一個很好的幫助可能是appassembler創建一個可分發包括所需的所有jar文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM