使用Maven套件添加第三方罐子



我有一个非常简单的春季启动项目,我使用一个名为jsoup的第三方罐子。

当我从Eclipse运行该项目时,代码正常工作。但是,当我使用MVN Clean Package命令并将其导出到可执行罐中;项目仍然有效,但是我使用JSOUP的零件会引发一个例外,即找不到JSOUP。因此,我的可执行罐不包含jsoup。

我搜索并尝试了一些方法,但它们没有起作用。如果您能帮助我,我会很感激。

这是我的pom文件,

<modelVersion>4.0.0</modelVersion>
<groupId>com.tools</groupId>
<artifactId>parser</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>parser</name>
<description>Demo project for Spring Boot</description>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.7</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <scope>system</scope>
        <version>1.0</version>
        <systemPath>${basedir}srclibjsoup-1.10.1.jar</systemPath>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

如果您的3-RD Party Jar没有MAVEN支持并且不在任何Maven存储库中,则可以从那里下载它,您需要为其制作Maven for turn for IT然后部署它使用Maven部署插件进入一些Maven存储库。

它可以是您的本地存储库,您的公司存储库或您想使用的任何公共存储库。

请在:将第三方罐子部署到远程存储库的指南

这是从中的maven命令格式:

mvn deploy:deploy-file -DgroupId=<group-id> 
 -DartifactId=<artifact-id> 
 -Dversion=<version> 
 -Dpackaging=<type-of-packaging> 
 -Dfile=<path-to-file> 
 -DrepositoryId=<id-to-map-on-server-section-of-settings.xml> 
 -Durl=<url-of-the-repository-to-deploy>

您使用的是JSOUP版本1.10.1,但将其与<scope>system</scope>一起使用。像<scope>provided</scope>一样,Maven不包括工件中的那些罐子。另请参阅此stackoverflow问题和答案。

但是,jsoup是一个普通的罐子,就像您的其他依赖关系一样,在Maven Central中。正如您在这里看到的。只需将其添加为常规依赖性即可。

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.10.1</version>
</dependency>

而不是您现在拥有的。这将使它包含在您的可执行罐中,春季启动将为您创建。(并使您免于手动寻找罐子和更新等)。

最新更新