2017-10-06 132 views
1

我正在写一个使用Mojo类的Maven插件。该插件需要一个名为jcifs的依赖项,并将其包含在插件的pom.xml中。我可以构建插件,并将其部署到本地存储库中。我可以在我的本地存储库中找到jar文件和pom.xml文件。Maven插件外部依赖不解决

当我在本地系统的另一个项目中使用这个插件时,当执行插件目标时,我得到一个异常说没有找到类。但是这个类来自jcifs jar,它被包含在我的插件的依赖项中。

我无法弄清楚我在这里错过了什么。任何帮助表示赞赏

以下是插件的pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.mayuran19.maven.plugin</groupId> 
<artifactId>LocalToRemoteRepo</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>maven-plugin</packaging> 
<name>localtoremoterepo-maven-plugin</name> 

<properties> 
    <mavenVersion>3.2.1</mavenVersion> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.maven</groupId> 
     <artifactId>maven-plugin-api</artifactId> 
     <version>3.5.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven</groupId> 
     <artifactId>maven-core</artifactId> 
     <version>${mavenVersion}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven.plugin-tools</groupId> 
     <artifactId>maven-plugin-annotations</artifactId> 
     <version>3.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>jcifs</groupId> 
     <artifactId>jcifs</artifactId> 
     <version>1.3.17</version> 
    </dependency> 
</dependencies> 
<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.2</version> 
       <configuration> 
        <source>${maven.compiler.source}</source> 
        <target>${maven.compiler.target}</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-plugin-plugin</artifactId> 
       <version>3.3</version> 
       <executions> 
        <execution> 
         <id>default-descriptor</id> 
         <phase>process-classes</phase> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

下面显示的是,使用这个插件项目的pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.mayuran19.maven.plugin</groupId> 
<artifactId>LocalToRemoteRepo</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>jar</packaging> 
<name>localtoremoterepo-maven-plugin Test</name> 

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>4.3.3.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.integration</groupId> 
     <artifactId>spring-integration-core</artifactId> 
     <version>4.3.4.RELEASE</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven.shared</groupId> 
     <artifactId>maven-dependency-tree</artifactId> 
     <version>3.0.1</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>jcifs</groupId> 
     <artifactId>jcifs</artifactId> 
     <version>1.3.17</version> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>com.mayuran19.maven.plugin</groupId> 
      <artifactId>LocalToRemoteRepo</artifactId> 
      <version>1.0-SNAPSHOT</version> 
      <configuration> 
       <localRepoDir>C:/Users/smayuran.SITBCS/.m2/repository</localRepoDir> 
       <remoteRepoDir>smb://192.168.9.196/internal</remoteRepoDir> 
       <username>G3App</username> 
       <password>[email protected]$1</password> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

我得到的错误是类库未找到异常jcifs

+0

首先你要写什么样的插件?其次,插件的pom如何以及整个错误输出如何显示? – khmarbaise

+0

您可以从插件发布依赖关系树吗?如果插件只使用该插件,您也不需要实现该插件的项目中列出的依赖项。 – cbm64

回答

0

你可以做到这样,如果你想:

**第1步:**下载jar文件到你的本地计算机

**第2步:**移动你罐子Maven的你回购:运行如图波纹管

实施例:

<dependency> 
    <groupId>org.mock-server</groupId> 
    <artifactId>mockserver-netty</artifactId> 
<version>3.10.1</version> 
</dependency> 

mvn install:install-file -Dfile=C:\Users\username\Desktop\mockserver-netty-3.10.1.jar -DgroupId=org.mock-server -DartifactId=mockserver-netty -Dversion=3.10.1 -Dpackaging=jar