Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 如何使此路径适用于任何具有.m2目录的计算机?_Maven - Fatal编程技术网

Maven 如何使此路径适用于任何具有.m2目录的计算机?

Maven 如何使此路径适用于任何具有.m2目录的计算机?,maven,Maven,我已经编写了一个mojo来提取zip文件。(我不使用maven依赖插件来提取它是有原因的)。我在Mojo中有一个zip文件的路径,它是硬编码的 String zipFilePath = "/home/<my-username>/.m2/repository/mytest/template/app/mytest-template-app/1.0-SNAPSHOT/mytest-template-app-1.0-SNAPSHOT.zip"; 我已经使用工件id+版本创建了zip文件名

我已经编写了一个mojo来提取zip文件。(我不使用maven依赖插件来提取它是有原因的)。我在Mojo中有一个zip文件的路径,它是硬编码的

String zipFilePath = "/home/<my-username>/.m2/repository/mytest/template/app/mytest-template-app/1.0-SNAPSHOT/mytest-template-app-1.0-SNAPSHOT.zip";
我已经使用
工件id+版本创建了zip文件名

如何通过在运行此代码的计算机中动态获取.m2文件夹来修改此文件路径以动态获取


(我正在使用Ubuntu。)

如果你在写魔咒,这是一种方法:

public class MyMojo extends AbstractMojo {

   @Parameter( defaultValue = "${settings}", readonly = true, required = true )
   org.apache.maven.settings.Settings settings; // Using FQCN for clarity.

   @Override
   public void execute() throws MojoExecutionException  {

       getLog().info("My repo is at " + settings.getLocalRepository());

   }

作为补充说明,您的
artifact id=mytest.template.app
不会转换为
mytest template app
,因为
artifact id
中的点的解释方式与
groupId

不同,我可以在maven中使用${settings.localRepository}来获取.m2存储库。是否可以在java中使用相同的功能?如果是,我如何在java中使用它?
public class MyMojo extends AbstractMojo {

   @Parameter( defaultValue = "${settings}", readonly = true, required = true )
   org.apache.maven.settings.Settings settings; // Using FQCN for clarity.

   @Override
   public void execute() throws MojoExecutionException  {

       getLog().info("My repo is at " + settings.getLocalRepository());

   }