fat*_*zzy 6 java dependencies maven-2
我有一个简单的项目,有3个依赖项,但出于某种原因,当我从eclipse运行时运行 - > maven install.我没有得到依赖.不在快照罐里面,不在外面......任何想法?这是我的pom:
<?xml version="1.0"?>
<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</groupId>
<artifactId>trade</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>trade</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
Pas*_*ent 17
(...)我没有得到依赖.不在快照罐里面,不在外面......任何想法?
是的:对于带有jar包装的项目,这不应该发生.创建的jar"only"包含项目中的类,在编译和测试执行期间"仅"使用依赖项.
从介绍到依赖机制:
依赖范围
依赖范围用于限制依赖的传递性,还用于影响用于各种构建任务的类路径.
有6个范围可用:
- compile
这是默认范围,如果未指定,则使用.编译依赖项在项目的所有类路径中都可用.此外,这些依赖项将传播到依赖项目.- 提供
这很像compile,但表示您希望JDK或容器在运行时提供依赖关系.例如,在为Java Enterprise Edition构建Web应用程序时,您可以将Servlet API和相关Java EE API的依赖关系设置为提供的范围,因为Web容器提供了这些类.此范围仅在编译和测试类路径中可用,并且不可传递.- runtime
此范围指示编译不需要依赖项,但是用于执行.它位于运行时和测试类路径中,但不是编译类路径.- test
此范围表示正常使用应用程序不需要依赖关系,并且仅适用于测试编译和执行阶段.- system
此范围与提供的类似,只是您必须提供明确包含它的JAR.工件始终可用,并且不会在存储库中查找.- import(仅在Maven 2.0.9或更高版本中可用)
此范围仅用于<dependencyManagement>节中pom类型的依赖项 .它表示应该用该POM<dependencyManagement>部分中的依赖项替换指定的POM .由于它们被替换,具有导入范围的依赖性实际上不参与限制依赖性的传递性....
如果要构建包含依赖项的独立可执行jar,请考虑使用Maven Assembly Plugin和预定义jar-with-dependencies描述符.看看以前的这些答案:
其他选项包括maven shade插件,onejar-maven-plugin.对于简单的用例,我建议使用程序集插件.
| 归档时间: |
|
| 查看次数: |
9840 次 |
| 最近记录: |