maven settings.xml proxy怎么配置

maven settings.xml proxy怎么配置,第1张

有时候网络不能直接访问外网, 需要设置代理

设置方式如下:

一、检测本地网络是否不能直接访问Maven的远程中央仓库,命令为ping repo1.maven.org

二、要检查代理服务器是否畅通,

比如现在有一个IP地址为192.168.10.117,端口为3267的代理服务,我们需要先运行telnet  192.168.10.117 3267来检查该地址的该端口是否畅通,

如果得道出错信息需要先获取正确的代理服务器信息,

如果telnet连接正确,则输入ctrl+],然后q,回车,退出即可。

三、检查完毕之后,在安装目录中编辑~/.m2/settings.xml文件,

代码如下:

添加代理配置如下:

<settings> 

   ...

   <proxies>

      <proxy>

         <id>my-proxy</id>

         <active>true</active>

         <protocol>http</protocol>

         <host>192.168.10.117</host>

         <port>3267</port>

         <!--

         <username>shihuan</username>

         <password>123456</password>

         <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts>

         -->

      </proxy>

    </proxies>

   ...

</settings>

    这段配置十分简单,proxies下可以有多个proxy元素,如果你声明了多个proxy元素,则默认情况下第一个被激活的proxy会生效。

这里声明了一个id为my-proxy的代理,active的值为true表示激活该代理,protocol表示使用的代理协议,这里是http。当然,最重要的是指定正确的主机名(host元素)和端口(port元素)。

上述XML配置中我注释掉了username、password、nonProxyHost几个元素,当你的代理服务需要认证时,就需要配置username和password。

nonProxyHost元素用来指定哪些主机名不需要代理,可以使用 | 符号来分隔多个主机名。

此外,该配置也支持通配符,如*.google.com表示所有以google.com结尾的域名访问都不要通过代理。

已经搭建好了kie-server的docker swarm集群. 没有搭建business-central是集群是因为这是个页面的可视化的开发环境 一来面向开发人员,不需要集群部署 二来他的数据是放在本地的git服务器上的. 所以每个node的数据不会统一 三来部署好了之后页面也打不开… 四来business-central是只可以有一个kie-server的远程服务器. 天生就不能集群部署,五来,搭建kie-server的集群是是不能使用 --link参数来指定对应的business-central的, 也就是说搭建的kie-server集群暂时不能指定business-central.

ok结论是 kie-server是三个node的集群, business-central不集群部署,只部署一台服务器. 而且business-central与kie-server不再进行连接. 也就是b 不指定kie-server远程服务器 . 现状暂时如此,以下是讲如此架构下的发布流程.

kie-server对外暴露了一个接口, 用于发布项目.

get请求 http://xxxx.104:8180/kie-server/services/rest//server/containers/testCreate

body:

每个node是有本地maven库的, 会根据请求的三个参数从maven本地库找到这个jar 然后部署成一个kie-server里的一个容器. 容器就是kie-server对外提供服务的一个服务器之下的一个最高的组织方式.

ok为了验证可用性 手动把jar分别放进每个node里 并分别执行cp命令将jar从服务器的临时目录copy到容器里maven本地库下的指定目录里

结果是确实发送了get命令后会部署成功. ok验证通过. 但问题也很明显. 发布过程过于手动化, 对于开发人员来说很容易造成误操作, 比如某个node遗漏了cp命令, 还有一个问题 更严重, 因为已经利用了swarm的特性 已经是负载均衡的了, 所以put请求到了哪个node是不确定的, 需要打开日志发送多次put请求 确保每个node都发布成功了. 这个操作很…很蠢

ok在上一步的基础上更进一步假设如果每个node都连接同一个远程maven库, 那就只需要将代码发布到这个远程库, 即可以达到让每个node都能接受到这个资源从而进行发布, 就不需要人工把jar copy到各个node了./opt/jboss/.m2/repository目录会自动建的, 下面有setting.xml配置文件 文件内容很有帮助,

首先setting.xml是maven的配置文件 配置了服务器在哪等等信息. 注释的大致意思是

KIE_MAVEN_REPO - Defaults to http://localhost:8080/drools-wb/maven2

KIE_MAVEN_REPO_USER - Defaults to admin

KIE_MAVEN_REPO_PASSWORD - Defaults to admin

文件使用环境变量来配置, 三个关键的环境变量如上.

也就是说我们创建 kie-server集群的时候如果指定了环境变量 也就可以给每个node指定他的maven服务器地址. 很nice

ok下一步要开一个maven远程服务器 ,并验证可以将本地代码install的jar报 deploy到远程maven服务器.

docker run -d -p 8001:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3

第一步利用docker创建一个maven服务器的容器. docker真是越用越好用.

然后http://172.16.250.104:8001 就可以看到maven的管理页面了, 需要密码

进入容器根目录, 下面有nexux-date目录, 里面原来有个admin.password的文件. 打开里面就是admin 的密码 .因为登录后改密码之后这个默认密码的文件消失了, 所以截图里没有

主要是复制下这两个的url

然后本地pc打开 IDEA, 设置 maven /user serttings file override . 然后编辑本地的setttings.xml 全文如下:

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

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">

<pluginGroups>

</pluginGroups>

<proxies>

</proxies>

<servers>

<server>

<id>nexus-releases</id>

<username>admin</username>

<password>9b1f9129-0b87-460c-9435-37a754198655</password>

</server>

<server>

<id>nexus-snapshots</id>

<username>admin</username>

<password>9b1f9129-0b87-460c-9435-37a754198655</password>

</server>

</servers>

<mirrors>

<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>

</mirrors>

<profiles>

<profile>

<id>nexus</id>

<properties>

<altSnapshotDeploymentRepository>

nexus-snapshots::default::http://172.16.250.104:8001/repository/maven-snapshots/

</altSnapshotDeploymentRepository>

<altReleaseDeploymentRepository>

nexus-releases::default::http://172.16.250.104:8001/repository/maven-releases/

</altReleaseDeploymentRepository>

</properties>

</profile>

</profiles>

<activeProfiles>

<activeProfile>nexus</activeProfile>

</activeProfiles>

</settings>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

关键信息是server和两个url.

maven的配置好了, 然后是项目代码的配置,

对项目来说 ,因为项目用的maven 的配置文件里有了profile nexus, 所以在IDEA里打开项目可以看到profiles nexus是固定选中的

打开项目文件里的 pom.xml 顶级节点下添加如下代码

<distributionManagement>

<!--正式版本-->

<repository>

<!-- 在settings.xml中<server>的id-->

<id>nexus-releases</id>

<url>http://172.16.250.104:8001/repository/maven-releases/</url>

</repository>

<!--快照版本-->

<snapshotRepository>

<id>nexus-snapshots</id>

<url>http://172.16.250.104:8001/repository/maven-snapshots/</url>

</snapshotRepository>

</distributionManagement>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

2

3

4

5

6

7

8

9

10

11

12

13

14

ok 这样项目在执行 maven deploy命令的时候就会把install的时候生成的jar发布到远程服务器.根据版本号是否是快照 决定发布到正式还是快照的repostitory, 效果如下

这时候就可以在maven的后台管理页面看到刚deploy的jar

ok至此maven服务器和发布流程已经验证通过, 结束.

下一步是kie-server在部署集群的时候设置环境变量, 让集群中的每个node都连上maven服务器.

还有个问题没有解决, 即put发布命令是被负载均衡了的, 怎么保证每个节点都能确保发布.可能要发布的时候指定一下网络,不用ingress 发布好了之后再改成ingress ? 这要考虑下, 不过还好问题不大

安装JDK

先查看下 yum list java*

yum install java-1.7.0-openjdk* -y

环境变量应该是会自动配置的

或者手动配置编辑/etc/profile

JAVA_HOME=/usr/java/jdk1.7.0_25

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

安装maven

yum -y install apache-maven

这时候可能会报错

这时候需要用wget命令去网络上下载资源包

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

然后重新安装maven

mvn -V 查看maven的安装路径,jdk的也一起显示啦

安装ant

yum install -y ant

6

查看下ant的安装路径


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/280668.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存