Java maven artifactid如何连接到文件?

Java maven artifactid如何连接到文件?,java,maven,pom.xml,artifact,Java,Maven,Pom.xml,Artifact,在过去的几天里,我尝试了webservices和jboss4,但遇到了以下问题: 我在pom.xml中包含了此依赖项: <dependency> <groupId>org.jboss</groupId> <artifactId>jboss-jaxws</artifactId> <version>4.2.2</version> </dependency> 我如何知道哪个罐子对应

在过去的几天里,我尝试了webservices和jboss4,但遇到了以下问题:

我在pom.xml中包含了此依赖项:

<dependency>
    <groupId>org.jboss</groupId>
    <artifactId>jboss-jaxws</artifactId>
    <version>4.2.2</version>
</dependency>

我如何知道哪个罐子对应于哪个maven工件?我如何知道我的.m2/repository文件夹中的一百万个文件属于哪个groupid、artifactid和版本号?

也许您会发现这个maven命令很有用

mvn dependency:tree -Dverbose

它显示了按组工件分类的jar依赖项,还将它们之间的依赖项表示为一棵树

也许您会发现这个maven命令很有用

mvn dependency:tree -Dverbose

它显示了按组工件分类的jar依赖项,还将它们之间的依赖项表示为一棵树

工件名称始终为${artifactId}-${version}.${type} 在您的例子中:
jboss-jaxws-4.2.2.jar

您只是在不好的地方寻找它,您所说的
lib
文件夹必须是统一类加载器中的一个,您所寻找的库必须由服务器类加载器加载,即它必须位于
JBOSS\u HOME/modules

[编辑] Ferdinand Neman说jboss与maven没有关系是正确的。pom中的依赖项声明只允许maven构建和打包您的项目。运行时行为取决于您的目标环境,唯一需要确保的是在类加载期间必须解析依赖项,无论是因为它们与项目打包在一起还是由运行时环境提供


无论如何,jar jboss-jaxws-4.2.2.jar必须存在于您的工作站上(在本地maven存储库中),以允许在maven编译期间进行类链接,因为jar被标记为只要它不会包含在生成的构建工件中。

工件名称始终是${artifactId}-${version}.${type} 在您的例子中:
jboss-jaxws-4.2.2.jar

您只是在不好的地方寻找它,您所说的
lib
文件夹必须是统一类加载器中的一个,您所寻找的库必须由服务器类加载器加载,即它必须位于
JBOSS\u HOME/modules

[编辑] Ferdinand Neman说jboss与maven没有关系是正确的。pom中的依赖项声明只允许maven构建和打包您的项目。运行时行为取决于您的目标环境,唯一需要确保的是在类加载期间必须解析依赖项,无论是因为它们与项目打包在一起还是由运行时环境提供


无论如何,jar jboss-jaxws-4.2.2.jar必须存在于您的工作站上(在本地maven存储库中),以便在maven编译期间允许类链接,因为jar标记为提供,它不会包含在生成的构建工件中。

jboss提供/包含的所有jar文件都与maven无关。它们只是为了运行JBossIT本身。其他希望在容器中运行的应用程序需要提供自己的库集。但是,有时候,JBoss提供的一些库对于应用程序来说已经足够了(因为它们将生活在同一个VM上),所以您不需要提供自己的库。您将这些库用于开发目的,以后在部署时,您不会将它们包括在部署中

因此,JBOSS提供的哪个Jar应该与maven存储库中的哪个artifactId、groupId或版本相关,除非对它们的名称给出一些提示


例如,如果您看到Jboss附带了“commons codec.jar”。无法确定jar来自Maven中的哪个artifactId、groupId或版本。您可能会猜到“commons codec”应该是某个工件的名称。像这样的站点可以帮助您找到与您正在调查的jar相关的maven工件

Jboss提供/包含的所有jar文件都与maven无关。它们只是为了运行JBossIT本身。其他希望在容器中运行的应用程序需要提供自己的库集。但是,有时候,JBoss提供的一些库对于应用程序来说已经足够了(因为它们将生活在同一个VM上),所以您不需要提供自己的库。您将这些库用于开发目的,以后在部署时,您不会将它们包括在部署中

因此,JBOSS提供的哪个Jar应该与maven存储库中的哪个artifactId、groupId或版本相关,除非对它们的名称给出一些提示


例如,如果您看到Jboss附带了“commons codec.jar”。无法确定jar来自Maven中的哪个artifactId、groupId或版本。您可能会猜到“commons codec”应该是某个工件的名称。像这样的站点可以帮助您找到与您正在调查的jar相关的maven工件

maven存储库是基于文件夹结构的
groupId/artifactId/version
构建的。maven存储库是基于文件夹结构的
groupId/artifactId/version
构建的。在我的JBoss目录中没有文件夹“模块”,但是我认为你是对的,因为有一个“客户端”包含“jboss jaxws.jar”的文件夹。我现在找对地方了吗?嗯,我不知道jboss-4的“osgi子系统”可能在更高版本中出现。谢谢!您的回答也非常有用:我相信知道任何用maven构建的工件的名称在将来都会非常有用!我的JBoss目录中没有“modules”文件夹,但我认为您是对的,因为有一个“client”文件夹包含一个“JBoss jaxws.jar”。我现在找对地方了吗?嗯,我不知道jboss-4的“osgi子系统”可能在更高版本中出现。谢谢!你的回答也很有用
mvn dependency:tree -Dverbose