nas上搭建maven仓库docker,第1张

1更好地利用资源,虚拟机的粒度是“虚拟出的机器”,而 Docker 的粒度则是“被限制的应用”,相比较而言 Docker 的内存占用更少,更加轻量级。

2、Docker 可以很好地和微服务结合起来。从概念上来说,一个微服务便是一个提供一整套应用程序的部分功能,Docker 便可以在开发、测试和部署过程中一直充当微服务的容器。甚至生产环境也可以在 Docker 中部署微服务。

3、在云服务提供商之间移植,大多数的云主机提供商已经全面支持 Docker。对于开发人员来说,这表示你可以很方便地切换云服务提供商,当然也可以很方便地将你本地的开发环境移动到云主机上,不需要本地上配置一次运行环境、在云主机上还配置一次运行环境。全面部署 Docker (Docker here and Docker there) 作为标准运行环境可以极大地减轻应用上线时的工作量和产生 BUG。

4、API 端,API 是应用之间的粘合剂,一个合格开发者肯定使用过别人提供的 REST API,或者自己开发过 REST API。需要指出的是,无论是客户端还是 API 提供端,在开发之前都需要先定义一组公共的 API 接口,写成文档,然后才能进行编码。如果服务端和客户端是共同开发的话,那么服务端通常会先实现能返回固定字符串的 API 接口,在以后的开发中再慢慢去实现 API 的功能。

5、技术的创新,Docker 正在快速发展,工具也在不断更新,没有人能预见到未来 Docker 会是什么样子的。你在复杂的系统中 Docker 使用的越多,越是可能会发现技术上的空白和未来技术发展的方向。

maven 手动把本地jar安装到本地仓库

方法/步骤

1

是自己编写的一个jar文件,每次添加单个jar到maven本地仓库的操作如下: 1建立一个新的文件夹,将jar文件存放在该文件夹下。 注意文件夹下最好只存放该文件。 2在该文件夹下建立一个pomxml文件,在pom文件中定义其maven坐标。 3在cmd窗口中执行以下命令: mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

例如:

mvn install:install-file -Dfile=D:/jar/xxxjar -DgroupId=xxxxxx -DartifactId=xxx -Dversion=xx -Dpackaging=jar

maven--私服的搭建(Nexus的使用)和注意的问题

私服是什么

私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是http://wwwsonatypeorg/nexus/go。默认端口8081,这里我选择最新版nexus-250-04。

常用功能

Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。

开启Nexus服务后访问url地址http://localhost:8081/nexus/(推荐使用自己的ip地址),之后登录系统,用户名密码分别是:admin/admin123

最频繁的就是点击左侧菜单栏的Repositories按钮

一般用到的仓库种类是hosted、proxy。Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。笔者认为,其实Maven这个自带的默认仓库一般情况下已经够大多数项目使用了。特殊情况时在配置新的仓库,指定url即可,一般熟悉ExtJS的人操作这个Nexus都没什么问题,单词不是很难,不明白的查查单词基本差不多。就是如果Sonatype公司对其做了国际化的处理就更好了。

hosted 类型的仓库,内部项目的发布仓库

releases 内部的模块中release模块的发布仓库

snapshots 发布内部的SNAPSHOT模块的仓库

3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去

proxy 类型的仓库,从远程中央仓库中寻找数据的仓库

group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库

maven项目索引

下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能

保存后后台会运行一个任务,点击菜单栏的Scheduled Tasks选项即可看到有个任务在RUNNING。 下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。例如spring-core

就可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目pom中配置相关私服信息

指定仓库

[html] view plaincopy

<repositories>

<repository>

<id>nexus</id>

<name>nexus</name>

<url>http://1921681103:8081/nexus/content/groups/public/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

</repositories>

指定插件仓库

[html] view plaincopy

<pluginRepositories>

<pluginRepository>

<id>nexus</id>

<name>nexus</name>

<url>http://1921681103:8081/nexus/content/groups/public/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</pluginRepository>

</pluginRepositories>

这样只有本项目才在私服下载组件

这样这个Maven项目构建的时候会从私服下载相关依赖。当然这个配置仅仅是在此项目中生效,对于其他项目还是不起作用。如果相对Maven的其他项目也生效的话。需要修改全局的settingsxml文件。

修改settingsxml为

追加激活profile

[html] view plaincopy

<activeProfiles>

<activeProfile>central</activeProfile>

</activeProfiles>

之后所有本机的Maven项目就在私服下载组件。(这样比较好)

项目的发布

[html] view plaincopy

<distributionManagement>

<repository>

<id>user-release</id>

<name>User Project Release</name>

<url>http://1921681103:8081/nexus/content/repositories/releases/</url>

</repository>

<snapshotRepository>

<id>user-snapshots</id>

<name>User Project SNAPSHOTS</name>

<url>http://1921681103:8081/nexus/content/repositories/snapshots/</url>

</snapshotRepository>

</distributionManagement>

注意配置了还是发布项目到私服失败,原因为没有权限,会出现401错误码,原因就是权限不够。

配置权限在settingsxml

注意Respository中的id一定要和server下的id一致,切记!!否则出现权限问题。

然后运行发布

clean deploy

在控制台发布成功

然后进入到私服上的仓库中,看一下确实存在刚刚发布的项目

1、把下载下来的maven的zip文件随便解压到一个地方,比如:f:\tool\apache-maven-325

2、设置环境变量(雷同JAVA_HOME):

新加一个"MAVEN":

把"MAVEN"加到Path中:

3、打开命令行看看maven是否已经正确配置:

能看到上面的信息说明已经配置正常。

4、在命令行中输入:

mvn help:system

运行结果:

此命令运行完后,将会在windows用户文件夹自动生成一个“m2”的文件夹,里头有一个repository目录,比如:

C:\Users\xxxxx\m2

这是本地用户仓库,未来使用maven所自动下载的jar包会下载到这。

5、Eclipse配置Maven:

点击eclipse中的window->Perference->Maven->Installations,设置自己下载的Maven。

原eclipse自带的maven可移除,因为大多是版本不一样,会导致后面有莫名的问题。

6、新建Maven的Web项目方法:

61)Ctrl + N:

这样,一个Maven的web项目已经建成。但默认,Project Facet中的Java版本是15的,要把它修改为本地的java版本。

62)右键项目->Properties,把它修改为:

我这里是使用JBoss,所以要把Dynamic Web Module中的Runtimes设为JBoss:

 

62)以Maven的默认契约新建一个src/main/java源文件夹:

这个文件夹需要手工建,不能以新建源文件夹方式来建。(估计是BUG,总会提示已经存在,但事实上又没有)

63)打开pomxml文件,加入依赖(dependency)

<project xmlns="http://mavenapacheorg/POM/400" xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"

xsi:schemaLocation="http://mavenapacheorg/POM/400 http://mavenapacheorg/maven-v4_0_0xsd">

<modelVersion>400</modelVersion>

<groupId>commymavenweb</groupId>

<artifactId>testweb1</artifactId>

<packaging>war</packaging>

<version>001</version>

<name>testweb1 Maven Webapp</name>

<url>http://mavenapacheorg</url>

<properties>

<springframeworkversion>320RELEASE</springframeworkversion>

<freemarkerversion>2320</freemarkerversion>

<modelmapperversion>072</modelmapperversion>

</properties>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>381</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>orgspringframework</groupId>

<artifactId>spring-core</artifactId>

<version>${springframeworkversion}</version>

</dependency>

<dependency>

<groupId>orgspringframework</groupId>

<artifactId>spring-beans</artifactId>

<version>${springframeworkversion}</version>

</dependency>

<dependency>

<groupId>orgfreemarker</groupId>

<artifactId>freemarker</artifactId>

<version>${freemarkerversion}</version>

</dependency>

<dependency>

<groupId>orgmodelmapper</groupId>

<artifactId>modelmapper</artifactId>

<version>${modelmapperversion}</version>

</dependency>

</dependencies>

<build>

<finalName>testweb1</finalName>

</build></project>

比如我上面加入了几个依赖:spring、freemarker、modelmapper。

保存pomxml,eclipse会自动去到中央服务器中下载对应的jar包,jar包保存在用户文件夹的/m2下

这里,Maven的eclipse配置基本已经完成了。

7、构建和生成Maven

Eclipse中右键项目->Run As->Maven install

Maven默认会把生成的war文件、class所编译的文件都放在项目文件夹中的target目录下

我们在项目的buildgradle

文件中如下定义仓库,就能使用Maven

Central了:

allprojects

{

repositories

{

mavenCentral()

}

}

注意,虽然jcenter和Maven

Central

都是标准的

android

library仓库,但是它们维护在完全不同的服务器上,由不同的人提供内容,两者之间毫无关系。在jcenter上有的可能

Maven

Central

上没有,反之亦然。

除了两个标准的服务器之外,如果我们使用的library的作者是把该library放在自己的服务器上,我们还可以自己定义特有的Maven仓库服务器。

然后在里面使用相同的方法获取一个library。

dependencies

{

compile

'comcrashlyticssdkandroid:crashlytics:224@aar'}

但是将library上传到标准的服务器与自建服务器,哪种方法更好呢?当然是前者。如果将我们的library公开,其他开发者除了一行定义依赖名的代码之外不需要定义任何东西。

是的。上面所说的仓库是指你电脑本地的jar包存在路径maven项目直接从本地库中引入jar到项目中,如果maven中需要引入的jar你本地库中没有就会到你指定的nexus(管理maven所依赖的jar的服务器)服务器中去下载到本地库中然后引入到项目中

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » nas上搭建maven仓库docker

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情