从使用Maven的Visual Studio Java代码开始
我要回到Java开发的起源。我习惯于在C中使用Nuget软件包。我有Maven的基本概念。我想使用VSC Visual Studio代码 我正在寻找如何导入我的第一个包以使用函数/方法ByteUtils。这个方法似乎来自Apache包 这是我的pom.xml从使用Maven的Visual Studio Java代码开始,java,maven,visual-studio-code,Java,Maven,Visual Studio Code,我要回到Java开发的起源。我习惯于在C中使用Nuget软件包。我有Maven的基本概念。我想使用VSC Visual Studio代码 我正在寻找如何导入我的第一个包以使用函数/方法ByteUtils。这个方法似乎来自Apache包 这是我的pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww
<?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>testGroupId</groupId>
<artifactId>artifactId</artifactId>
<version>1.0</version>
<name>artifactId</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>21</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
我的问题。为什么不能加载或下载ny org.apache依赖项?该工件不是JAR工件,而是POM工件,可以用作maven模块的父级,也可以在depencyManagement部分中使用
如果您添加一个POM工件作为普通依赖项,maven将尝试下载工件的jar文件,但它不存在,因此会出现错误
添加为父项
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>21</version>
</parent>
您是否能够从命令提示符下生成?在添加my dependency org.apache yesMaybe之前,我的dependency被错误引用了?这是一个参考问题。当我从pom.xml中删除它时,我可以再次构建它。我可以使用VSC和Maven项目部分的编译选项进行构建。你确定吗。我找不到这个ByteUtils来自哪里。@BastienVandamme您的代码没有引用该类。请告诉包中的完整类。@BastienVandamme如果您想使用org.apache.commons.compress.utils.ByteUtils,那么您必须添加org.apache.commons:commons compress:jar:1.18作为依赖项。是,但在注释中。org.apache.commons:commons-compress:jar:1.18你怎么知道的?@BastienVandamme我使用谷歌搜索包含类的特定工件。
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>21</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>21</version>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.18</version>
</dependency>