赞
踩
<?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 http://maven.apache.org/xsd/settings-1.2.0.xsd"> <pluginGroups> </pluginGroups> </proxies> </servers> <mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors> <profiles> </profiles> </settings>
Maven in 5 Minutes
我是在windows环境里做的实验,在mvn package的时候报错了,这有可能是因为我没有配置JAVA_HOME,因为jdk8会给你自动配置一个C:\Program Files (x86)\Common Files\Oracle\Java\javapath
放在path里,这样是不行的,要配置JAVA_HOME
maven(一) maven到底是个啥玩意~
把create换成generate
Scala and Maven
Maven的setting文件,一个在MVN_HOME/conf/setting.xml
,如果USER_HOME/.m2/setting.xml
存在,那么就优先读取这个
Profiles就是个性配置,感觉最重要的就是repositories 和pluginRepositories,可以设置多个repositories 和pluginRepositories,如果某个包在第一个里面没找到就去第二个里面找
Profiles就是个性配置,里面可以有好多个profile,每个profile里都可以有各种各样的配置参数,比如下面的例子就是有一个profile,这个profile的名字叫做nexus,
activeprofiles和activation是用来激活某个profile的,我猜Activation是放在profile中的一个参数,下面的例子里用了activeprofiles表示,nexus这个profile被激活,里面的配置参数被启用
<settings> <offline>false</offline> <!-- 下面是代理设置,可以有多个 --> <proxies> <proxy> <id>web http</id> <active>true</active> <protocol>http</protocol> <host>my.proxy.com</host> <port>1234</port> <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy> </proxies> <profiles> <profile> <id>nexus</id> <repositories> <!-- 各种仓库,从上往下依次读取,第一个仓库没有就去第二个仓库找,我猜的 --> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>my-central</id> <url>http://my.maven.com/private</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <!-- 插件的仓库,写法和前面的一样 --> <pluginRepository> <id>central</id> <url>http://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>my-central</id> <url>http://my.maven.com/private</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles> </settings>
Maven镜像地址大全,Maven镜像地址配置示例
Maven:mirror和repository 区别
Maven:repositories、distributionManagement、pluginRepositories中repository的区别
setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*
个人觉得一个好的习惯是在pom里指定repository,尽量少在setting里设置repository,保证项目之间互不干扰。
dependencyManagement与dependencies区别
关于maven自动处理版本冲突的原则和调整依赖的方法
What is the difference between “pom” type dependency with scope “import” and without “import”?
type为pom只能用在dependencyManagement,功能就相当于把另一个工程的dependencies放进了本工程的dependencyManagement里,省的自己再在dependencyManagement写一大堆了,在之后的dependencies标签里就可以不写版本了。
maven依赖中如何理解<type>pom/jar/…</type>、<scope>compile/import…</scope>等?
mvn package
会输出一个jar包;如果是pom
,那么只会认为这个pom文件记录了一些依赖,使用mvn package
并不会输出jar包,举个例子,你可以看你Maven仓库的下面这个工程,他是一个这个工程的package就是个pom,含义是,这个pom只是记录了本mvn工程引入了各种引入的坐标,但并不会作为一个完整的jar包使用;<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
:需要在<dependencyManagement>
与<scope>import</scope>
一起使用,package
必须也得是pom
的父工程,那就一定要指定类型为pomdependencyManagement
,供本工程的子工程使用,而并不需要依赖这个父工程本身的jar包或者代码;<dependencyManagement>
里有spring-boot-dependencies
这个工程,类型为jar,那么子工程在dependencies
如果使用了这个spring-boot-dependencies
,那么子工程会将这个坐标作为一个jar来看,但这是没有意义的,因为这个spring-boot-dependencies
本身不会产生一个jar包。而且此时打mvn package
就会报错;When would I need maven dependency with runtime scope
scope指的是引入jar包的生效范围。诚然,在pom里写scope为runtime的包,改为compile也能用,但区分runtime和compile更多是为了规范性。mysql-connector-java
为例,他的scope一般为runtime,在开发过程中使用的接口都是jdk的类,因为如果scope为runtime,代码里是无法引入与使用mysql-connector-java
里的类的(编译报错),因为这个包的生效范围最多只到runtime。
(这个类之所以在运行是可用,是因为java的spi机制,甚至你手动用class加载也是能加载的,但编译期就是无法使用)
Maven的Scope区别笔记
讲一下runtime,一般这种类库都是接口与实现相分离的类库,这句话很重要,例如mysql的jdbc库,是java提供了接口,然后mysql去实现了这个接口。你可以看到在用jdbc链接mysql的库的时候,引入的包都是java内置的接口类,并没有mysql-connector-java
,它是通过类加载器加载进去的,因此,mysql-connector-java
这个包里的具体实现类是在运行期使用的,在编译器没有被使用。因此在pom里它是runtime
Maven项目中resources配置总结
maven Resources标签的使用
resouces标签作用:在打包成jar的时候,控制resouces文件夹里的资源文件,被放在哪里,默认情况下,resouces文件夹里的内容会被放在jar里的目录里,
下面resouces配置,会将resouces的输出目录移动至上一层,而既然移动到上一层,这个xml配置就不会被放进jar里,而是放在了target/class/…/conf(从文件内容来看,jar等同于target/classes)
另注:他和maven-assembly可共存,毕竟一个输出jar,一个是输出合并打包文件。
maven的filters目录详解
Maven生命周期(clean+site+default)
Maven 构建生命周期
Maven插件(plugin)
mvn install、package都是生命周期的一种,生命周期只是一个方便developer理解的抽象概念而已,每个生命周期由多个goal顺序执行而组成,例如mvn clean执行的就是顺序执行clean里的pre-clean和clean两个goal,而每个goal具体是由plugin负责真正执行的。
Maven deploy配置方法详解
mvn deploy部署到nexus的教程详解
Maven - "maven-source-plugin"的使用
【Maven】Snapshot和Release版本的区别
依赖snapshot的时候需要注意使用mvn -U
IDEA多模块maven项目子模块无法引用父模块依赖
idea踩坑 maven子项目没有继承父项目依赖
用dependency:tree查看maven引入jar包的传递依赖
Maven:分析剔除无用的jar引用
解决 jar 包冲突的神器:maven-shade-plugin
Maven打包之maven-shade-plugin
maven-plugin-shade 详解
Apache maven shade plugin使用说明
Maven 教程(20)— 使用maven-assembly-plugin插件来定制化打包
解决Error:scalac:error while loading ,Error accessing
maven编译问题之 -The POM for XXX is invalid, transitive dependencies (if any) will not be available
【Maven】maven _remote.repositories 导致的local repository有依赖仍报找不到依赖问题
maven本地仓库中存在jar包,但编译不成功,显示jar包不存在
maven can’t find my local artifacts
git 简明教程
菜鸟教程 git 适合入门
git 廖雪峰 比菜鸟教程写得深
包含大多数操作,工作区就是此时代码的区域,暂存区就是add,本地仓库就是commit
git官网
对于windows操作系统,有setup版本和Windows Portable版本,Windows Portable版本可以看做一个压缩文件,将其解压到目标文件夹之后,只需要将该文件夹下的bin添加到环境变量即可在命令行使用git了
add
是将修改记录在暂存区;commit
是把暂存区的记录提交到本地版本库;git remote add origin xxx@xxx
的功能是为当前的这个working tree注册一个远程仓库,别名为origin,这个origin只对当前working tree有效,会被记录在.git文件夹里git fetch
,将远程仓库同步到本地记录的远程仓库。git fetch origin master
操作是将远端的仓库的master分支拉取到本地记录的远端仓库git merge origin/master
,即将origin/master
合并到此时的分支git reset --hard
会更新stage和working tree;git push origin jackson
的含义是将当前分支推送到origin/jackson
分支,如果远端不存在对应分支的话,会在远端创建origin/jackson
分支,但这个语句不会设定追踪;git push --set-upstream origin jackson
的含义是将当前分支推送到origin/jackson
分支 并且让当前分支去追踪远程的origin/jackson
分支,也可以使用git push -u
与--set-upstream
一样git add -A 和 git add . 的区别
Git忽略提交规则 - .gitignore配置运维总结
Git 瘦身代码库,永久删除大文件
git pull命令的用法
pull就是从远程仓库的某个分支拉取合并到本地分支git pull origin 5
意思就是从origin的5分支拉取代码同步到此时的分支
详解git pull和git fetch的区别:
Git中的‘HEAD’是什么?- Git名词解释
严格来说,head指向的是当前branch下的上次提交的结果
git-merge完全解析
git merge origin/5
的含义是将origin/5分支合并到当前分支
git查看远程分支,并且切换到远程的分支
如果要追踪远程的分支,那就必须要在本地构建一个分支去追踪这个分支。
如果在本地新建了一个分支a
,想把这个分支推送到远端,但此时远端是不存在该分支的,所以要指定远端分支git push origin a
,然后还要按照下面的方法设置本地关联远程分支
git branch --set-upstream 本地关联远程分支
GIT如何查看本地分支与远程分支的关联配置
关联了之后,如果push和fetch不指定分支,那么就会使用upstream的分支,查看所有分支并查看远程本地的对应关系git branch -avv
git删除远程分支和本地分支
彻底搞懂 Git-Rebase
error: 没有父提交的情况下不能 ‘fixup’ 您可以用 ‘git rebase --edit-todo’ 修正,然后执行 ‘git rebase --continue’。或者您可以用 'git
git删除本地和远程文件
(转)git从版本库中删除文件但不删除物理文件
如何删除GIT中的.DS_Store
Github删除某个文件的所有提交记录
Git恢复之前版本的两种方法reset、revert(图文详解)
git stash详解
执行stash后,本地工作区会回复到上次commit的状态。至于文中提到的pop的顺序,可以看到test2被先pop出来,test1被留下了
git 放弃本地修改
配置多个SSH-Key
管理git生成的多个ssh key
还可以在config文件里为每个远端仓库指定接口Port 22
默认也是22,可以不改
Git配置用户名和密码
git-flow 的工作流程
这个git-flow就是把多个git命令包了起来
Protobuf 终极教程
[译]Protobuf 语法指南
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。