M1版本Mac针对性配置

M1版本Mac针对性配置

项目编译报错信息解决方案:

Could not find artifact com.google.protobuf:protoc:exe:osx-aarch_64:3.6.1 in public (http://nexus.xxx.com/repository/maven-public/)

公司项目中使用的是googleprotobuf这种协议数据交换格式

在所有项目中配置有以下代码的地方都会报错

<configuration>
    <protocArtifact>com.google.protobuf:protoc:3.6.1:exe:${os.detected.classifier}</protocArtifact>
    <pluginId>grpc-java</pluginId>
    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.19.0:exe:${os.detected.classifier}</pluginArtifact>
</configuration>

原因:

M1芯片使用的是最新的 osx-aarch_64 架构,${os.detected.classifier}获取当前系统架构会获取到osx-aarch_64的exe文件。而nexus私有仓库中没有此版本。从而导致错误!!

如下图所示:私有仓库中版本只有osx-x86_64

upload successful

处理方案一(不推荐)

${os.detected.classifier}更改为osx-x86_64.

<configuration>
    <protocArtifact>com.google.protobuf:protoc:3.6.1:exe:osx-x86_64</protocArtifact>
    <pluginId>grpc-java</pluginId>
    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.19.0:exe:osx-x86_64</pluginArtifact>
</configuration>

处理方案二(推荐)

${os.detected.classifier}获取的架构强制更改为osx-x86_64,代码不需要更改,在/Users/jarvan/.m2/settings.xml中增加一个profile标签和一个activeProfile标签

<profile>
  <id>apple-silicon</id>
  <properties>
    <os.detected.classifier>osx-x86_64</os.detected.classifier>
  </properties>
</profile>

<activeProfiles>
  <activeProfile>apple-silicon</activeProfile>
</activeProfiles>

完整配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 <localRepository>/Users/jarvan/.m2/repository</localRepository>
  <servers>
      <server>
          <id>snapshots</id>
          <username>java-developer</username>
          <password>xxx</password>
      </server>

      <server>
          <id>releases</id>
          <username>java-developer</username>
          <password>xxx</password>
      </server>

      <server>
          <id>public</id>
          <username>java-developer</username>
          <password>xxx</password>
      </server>
  </servers>

  <mirrors>
     <mirror>
        <id>public</id>
        <name>public</name>
        <url>http://nexus.xxx.com/repository/maven-public/</url>
        <mirrorOf>public</mirrorOf>
    </mirror>

     <mirror>
         <id>snapshots</id>
         <name>snapshots</name>
         <url>http://nexus.xxx.com/repository/maven-snapshots/</url>
         <mirrorOf>snapshots</mirrorOf>
     </mirror>

     <mirror>
         <id>nexus-aliyun</id>
         <mirrorOf>central</mirrorOf>
         <name>Nexus Aliyun</name>
         <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
     </mirror>
  </mirrors>

  <profiles>
    <profile>
        <id>nexus</id>
        <repositories>
            <repository>
                <id>public</id>
                <name>Public</name>
                <url>http://nexus.xxx.com/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </snapshots>
            </repository>
            <repository>
                <id>nexus</id>
                <name>local private nexus</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>public</id>
                <name>Public</name>
                <url>http://nexus.xxx.com/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </snapshots>

            </pluginRepository>
            <pluginRepository>
                <id>nexus</id>
                <name>local private nexus</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
       </profile>
    <profile>
          <id>apple-silicon</id>
          <properties>
            <os.detected.classifier>osx-x86_64</os.detected.classifier>
          </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>nexus</activeProfile>
    <activeProfile>apple-silicon</activeProfile>
  </activeProfiles>

</settings>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是在M1 MacBook上安装和配置Maven的步骤: 1. 首先,你需要安装Homebrew。打开终端并运行以下命令: ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` 2. 然后,使用Homebrew安装Maven。在终端中运行以下命令: ``` brew install maven ``` 3. 等待安装完成后,验证Maven是否正确安装。在终端中运行以下命令: ``` mvn -version ``` 如果安装成功,你应该会看到类似于以下内容的输出: ``` Apache Maven 3.8.4 (ea04b570a453b0fcd307af0f746324c2b2f420b0) Maven home: /usr/local/Cellar/maven/3.8.4/libexec Java version: 17.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "12.1", arch: "x86_64", family: "mac" ``` 这表明Maven已经成功安装并可以使用了。 希望这可以帮助你在M1 MacBook上安装和配置Maven。如果你有任何其他问题,请随时问我。 ### 回答2: M1 Macbook是苹果公司新推出的一款装备了自主研发芯片的电脑。如果要在M1 Macbook上安装配置maven,需要按以下步骤进行操作。 1. 安装Homebrew 要在M1 Macbook上安装maven,首先需要安装Homebrew。Homebrew是一款包管理器,可以简化安装软件的过程。 在终端中输入以下指令,进行安装: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装完成后,可以通过以下指令更新Homebrew: brew update 2. 安装Java maven是基于Java的工具,所以需要在M1 Macbook上安装Java。可以通过以下指令安装Java: brew install --cask java 安装完成后,可以通过以下指令检查Java版本java -version 3. 安装maven 使用以下指令安装maven: brew install maven 安装完成后,可以通过以下指令检查maven版本: mvn -v 4. 配置环境变量 为了方便使用maven命令,在安装完成后需要将maven添加到环境变量中。具体做法是在命令行窗口中输入以下命令: echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile 5. 验证安装 最后,可以通过创建一个简单的Java项目,使用maven编译和运行该项目来验证maven安装是否成功。在终端中进入一个目录,使用以下命令创建一个新的Java项目: mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 此命令将创建一个包含简单Java代码的项目。使用以下命令编译和运行该项目: cd my-app mvn package java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App 如果程序能够顺利运行,表明maven已经安装并配置好了。 以上是在M1 Macbook上安装配置maven的具体步骤。需要注意的是,由于M1芯片架构与传统的x86芯片结构不同,可能存在一些兼容性问题,需要用Rosetta 2模拟器来运行。如果出现问题,可以尝试在终端中输入以下命令,启用Rosetta 2模拟器: /usr/sbin/softwareupdate --install-rosetta --agree-to-license ### 回答3: 在M1 MacBook上安装配置Maven,需要进行以下几个步骤: 第一步:安装Homebrew Maven是一个Java工具,因此需要先安装Java运行时环境。而在M1 MacBook上,可以使用Homebrew进行安装。Homebrew是一款Mac上的包管理器,可以通过简单的命令来安装和卸载软件包。 打开终端,输入以下命令: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 该命令将下载并安装Homebrew。 第二步:安装Java 在安装Maven之前,需要先安装JavaM1 MacBook上的Java版本有所不同,因此需要安装适配M1芯片的Java版本。 打开终端,输入以下命令: brew install --cask adoptopenjdk 该命令将安装适配M1芯片的Java版本。 第三步:安装Maven 完成Java的安装后,可以开始安装Maven。 打开终端,输入以下命令: brew install maven 该命令将下载并安装Maven。 第四步:配置Maven环境变量 安装完成后,需要配置Maven环境变量,这样才能在终端上使用Maven命令。 打开终端,输入以下命令: vi ~/.zshrc 打开.zshrc文件,将以下命令加入到文件末尾: export MAVEN_HOME=/usr/local/Cellar/maven/{版本号}/libexec export PATH=$MAVEN_HOME/bin:$PATH 将上述命令中的{版本号}替换成安装的Maven版本号,保存并关闭文件。 最后,在终端中输入以下命令,使配置生效: source ~/.zshrc 至此,Maven已经成功安装配置M1 MacBook上了。可以在终端中输入以下命令来验证: mvn -v 如果显示了Maven的版本号,就说明安装成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值