목표
- grunt 로 압축한다.
- maven 에서 nexus로 업로드 한다.
- 다른 프로젝트에서 해당 소스를 nexus에서 받아서 사용한다.
1. 명칭 설정 (안해도 됌)
node package.json 설정
// name 외에 다른 deploy file 명을 생성하고 싶으면, 원하는 명칭으로 정의
{
"name": "project",
"deployName": "prj",
"version": "1.0.0",
}
2. 압축하기
Gruntfile.js 에서 compress 설정
grunt compress library 사용 아래 링크에서 Options 참고 grunt-contrib-compress
compress: {
main: {
options: {
mode: "tgz",
// package.json 에서 정의된 명칭 // 압축된 파일을 저장할 위치 archive: "deploy/<%= pkg.deployName %>-<%= pkg.version %>.tar.gz", },
files: [{
expand: true,
cwd: "dist", // dist 폴더의 (파일 참조하는 최상위 폴더 위치)
src: ["**/*"] // 모든 파일을 대상으로 한다.
}]
}
}
# grunt test
grunt compress
3. Nexus 로 upload 하기
maven pom.xml 에 지정
deploy 폴더에 tar.gz 파일이 생성되었으면, 이를 nuxus 로 올리자.
<?xml version="1.0" encoding="UTF-8"?>
<project ...>
...
<properties>
<deploy.groupId>project</deploy.groupId>
<deploy.artifactId>prj</deploy.artifactId>
<deploy.ver>1.0.0</deploy.ver>
<deploy.repositoryId>Snapshots</deploy.repositoryId>
<deploy.file>
deploy/${deploy.artifactId}-${deploy.ver}.tar.gz
</deploy.file>
<deploy.packaging>tar.gz</deploy.packaging>
<repo>http://url/nexus/repository</repo>
<deploy.url>${repo}/web-lib_snapshot</deploy.url>
</properties>
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<goals>deploy</goals>
<configuration>
<groupId>${deploy.groupId}</groupId>
<artifactId>${deploy.artifactId}</artifactId>
<file>${deploy.file}</file>
<generatePom>false</generatePom>
<packaging>${deploy.packaging}</packaging>
<version>${deploy.ver}</version>
<repositoryId>${deploy.repositoryId}</repositoryId>
<url>${deploy.url}</url>
</configuration>
</plugin>
</plugins>
</build>
</project>
# test
mvn deploy:deploy-file
4. 다른 프로젝트에서 불러오기
bower에서 nexus에 올라간 파일을 버전 별로 가져올 수가 없었다.
bower-nexus-resolver 사용하여 해결
참조: bower-nexus-resolver
npm install bower-maven-resolver --save-dev
.bowerrc 설정
{
"directory": "bower_components",
"analytics": false,
"timeout": 120000,
"registry": {
"search": [
"http://url/nexus/repository",
]
},
"resolvers" : [
"bower-nexus3-resolver",
"bower-maven-resolver"
]
}
"dependencies": {
"maven3+http://url/nexus/repository": "1.0.0"
}
메모
- bower register 는 git url 로 가져와서 등록한다.
- bower install 시 bower_components 하위 레벨 폴더들이 700 으로 생성되면서, 그 안에 들어가야할 파일들이 루트레벨에 다운로드되는 현상 발생원인은 찾지 못하였음. 지우고 다시 깔다 보면 제대로 깔림
한번 제대로 되면 계속 제대로 받아짐… 뭐지 ㅠ