龙架构Maven仓库使用介绍


本文介绍龙架构Maven仓库的使用方法,并以jffi为例进行演示。

1. 龙架构Maven仓库URL

龙架构Maven仓库的地址为:https://maven.loongnix.cn/loongarchabi1/maven

2. 使用方法

用户可以通过以下任一方法使用龙架构Maven仓库。

  1. 为项目配置
  2. 为用户配置
  3. 为Maven软件配置

2.1. 为项目配置

第一种方法是为指定项目配置龙架构Maven仓库,在项目的pom.xml文件中添加如下代码:

<project>
  ...
  <repositories>
    <repository>
      <id>loongson</id>
      <name>Loongson Maven</name>
      <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>loongson</id>
      <name>Loongson Maven</name>
      <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>
  </pluginRepositories>
  ...
</project>

其中,<id><name>标签中的内容可以自定义,<url>的内容为龙架构Maven仓库的URL。

如果需要配置其他仓库,应当将龙架构Maven仓库置于首位,比如:

<project>
  ...
  <repositories>
    <repository>
      <id>loongson</id>
      <name>Loongson Maven</name>
      <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
    <repository>
      <id>sample-repo</id>
      <name>Sample-repo</name>
      <url>https://sample.repo.url</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>loongson</id>
      <name>Loongson Maven</name>
      <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>sample-repo</id>
      <name>Sample-repo</name>
      <url>https://sample.repo.url</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>
  </pluginRepositories>
  ...
</project>

需要注意的是,Maven 3.5.0之后的版本默认不再支持使用http协议的仓库,可以根据需要屏蔽文件~/.m2/settings.xml或$MAVEN_HOME/conf/settings.xml中的下述代码:

...
    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
...

2.2. 为用户配置

第二种方法是为Linux用户配置龙架构Maven仓库,参考如下代码修改~/.m2/settings.xml。如果没有该文件,可以将$MAVEN_HOME/conf/settings.xml复制到~/.m2下:

  ...
  <profiles>
    <profile>
      <id>my-profile</id>
      <repositories>
        <repository>
          <id>loongson</id>
          <name>Loongson Maven</name>
          <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>loongson</id>
          <name>Loongson Maven</name>
          <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>my-profile</activeProfile>
  </activeProfiles>
  ...

有配置其他仓库的需求可以参考为项目配置小节中的代码,此处不再赘述。

2.3. 为Maven软件配置

参考为用户配置小节中的代码修改$MAVEN_HOME/conf/settings.xml文件即可。

3. 验证方法

本小节介绍如何验证是否成功配置了龙架构Maven仓库。

新建文件夹test,并在test下新建pom.xml

$ mkdir test
$ cd test
$ vim pom.xml

将下面的代码添加到pom.xml文件中。

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>os-maven-plugin-test</artifactId>
  <version>1.0.0</version>

  <build>
    <plugins>
      <plugin>
        <groupId>kr.motd.maven</groupId>
        <artifactId>os-maven-plugin</artifactId>
        <version>1.6.2</version>
        <executions>
          <execution>
            <id>check-arch</id>
            <phase>initialize</phase>
            <goals>
              <goal>detect</goal>
            </goals>
            <configuration>
              <failOnUnknownArch>true</failOnUnknownArch>
              <arch>loongarch64</arch>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

保存并退出,随后执行下列命令清空本地Maven仓库缓存,并构建项目:

$ rm -rf ~/.m2/repository/
$ mvn clean verify

如果执行结果为SUCCESSFUL,如下代码所示,则说明已经成功配置了龙架构Maven仓库;

[INFO] Building jar: /home/user/Work/test/hello-loongson-maven/target/os-maven-plugin-test-1.0.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  17.072 s
[INFO] Finished at: 2023-06-26T19:01:37+08:00
[INFO] ------------------------------------------------------------------------

如果执行上述命令报错,且报错中包含如下信息,则说明当前Maven不能从龙架构Maven仓库中获取构件,请检查配置是否存在问题。

[ERROR] Failed to execute goal kr.motd.maven:os-maven-plugin:1.6.2:detect (check-arch) on project os-maven-plugin-test: unknown os.arch: loongarch64 -> [Help 1]

4. 一个构建实例

接下来以jffi为例,介绍如何在LoongArch平台使用Maven构建项目。

4.1. 安装Java环境

  1. 龙芯开源社区下载并安装Java环境

  2. 将下载的压缩包安装至指定目录,例如/home/user/software/jdk-17.0.7

     $ mv loongson17.5.0-fx-jdk17.0.7_7-linux-loongarch64.tar.gz /home/user/software
     $ tar -zxf loongson17.5.0-fx-jdk17.0.7_7-linux-loongarch64.tar.gz
    
  3. 修改环境变量,验证是否安装成功

    使用如下命令编辑环境变量:

     $ vim ~/.bashrc
    

    在环境变量中添加如下代码:

     JAVA_HOME=/home/user/software/jdk-17.0.7
     PATH=$JAVA_HOME/bin:$PATH
     export JAVA_HOME PATH
    

    保存并退出,依次执行下列命令,检查Java环境是否安装成功。

     $ source ~/.bashrc
     $ java -version
     openjdk version "17.0.7" 2023-04-18
     OpenJDK Runtime Environment Loongson17.5.0 (build 17.0.7+7)
     OpenJDK 64-Bit Server VM Loongson17.5.0 (build 17.0.7+7, mixed mode, sharing)
    

4.2. 安装并配置Maven

  1. Maven官网下载需要的Maven

  2. 将下载的压缩包解压到安装路径,例如/home/user/software/

     $ mv apache-maven-3.9.2-bin.tar.gz /home/user/software
     $ tar -zxf apache-maven-3.9.2-bin.tar.gz
    
  3. 修改环境变量,验证是否安装成功

    使用如下命令编辑环境变量:

     $ vim ~/.bashrc
    

    在环境变量中添加如下代码:

     MVN_HOME=/home/user/software/apache-maven-3.9.2
     export PATH=$MVN_HOME/bin:$PATH
    

    保存并退出,依次执行下列命令检查是否安装成功:

     $ source ~/.bashrc
     $ mvn -v
     Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c)
     Maven home: /home/user/software/apache-maven-3.9.2
     Java version: 17, vendor: LoongsonJVM, runtime: /home/user/software/jdk/17
     Default locale: zh_CN, platform encoding: UTF-8
     OS name: "linux", version: "4.19.0-18-loongson-3", arch: "loongarch64", family: "unix"
    
  4. 参考本章提供的方法配置龙芯Maven源

    为Maven软件配置为例,首先编辑settings.xml

     $ vim $MVN_HOME/conf/settings.xml
    

    添加如下代码:

       <profiles>
         <profile>
           <id>my-profile</id>
           <repositories>
             <repository>
               <id>loongson</id>
               <name>Loongson Maven</name>
               <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
               <releases><enabled>true</enabled></releases>
               <snapshots><enabled>true</enabled></snapshots>
             </repository>
           </repositories>
           <pluginRepositories>
             <pluginRepository>
               <id>loongson</id>
               <name>Loongson Maven</name>
               <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
               <releases><enabled>true</enabled></releases>
               <snapshots><enabled>true</enabled></snapshots>
             </pluginRepository>
           </pluginRepositories>
         </profile>
       </profiles>
       <activeProfiles>
         <activeProfile>my-profile</activeProfile>
       </activeProfiles>
    

4.3. 构建jffi

  1. 获取jffi的源码

    使用git命令获取jffi源码,并切换至某一版本,如jffi-1.3.10

     git clone https://github.com/jnr/jffi.git
     git checkout jffi-1.3.10
    
  2. 使用Maven构建jffi

     $ mvn clean verify
    

    执行上述命令后,如果有类似如下的屏幕输出,说明构建成功。

     [INFO] Building jar: /home/user/Work/maven-project/jffi/target/jffi-1.3.10-complete.jar
     [INFO]
     [INFO] --- assembly:2.2:single (native-assembly) @ jffi ---
     [INFO] Reading assembly descriptor: src/main/assembly/native.xml
     [INFO] Building jar: /home/user/Work/maven-project/jffi/target/jffi-1.3.10-native.jar
     [INFO] ------------------------------------------------------------------------
     [INFO] BUILD SUCCESS
     [INFO] ------------------------------------------------------------------------
     [INFO] Total time:  40.936 s
     [INFO] Finished at: 2023-06-26T19:44:49+08:00
     [INFO] ------------------------------------------------------------------------
    

©龙芯开源社区 all right reserved,powered by Gitbook文档更新时间: 2023-10-11 08:01:52

results matching ""

    No results matching ""

    results matching ""

      No results matching ""