当前位置: 首页 > news >正文

白城学做网站电子商务如何做网站销售

白城学做网站,电子商务如何做网站销售,景洪服装网站建设,wordpress关闭文章评论基础概念#xff1a; 1.POM pom:全名Project Object Model 项目对象模型#xff0c;用来描述当前maven项目发布模块的基础信息 pom主要节点信息如下#xff1a; 配置描述举例#xff08;com.android.tools.build:gradle:4.1.1#xff09;groupId组织 / 公司的名称com.…基础概念 1.POM pom:全名Project Object Model 项目对象模型用来描述当前maven项目发布模块的基础信息 pom主要节点信息如下 配置描述举例com.android.tools.build:gradle:4.1.1groupId组织 / 公司的名称com.android.tools.buildartifactId组件的名称gradleversion组件的版本4.1.1packaging打包的格式aar 2.仓库 我们在开发中经常使用到第二/三方插件或者第二/三方库就是存储在仓库中的 2.1仓库种类 本地仓库存储在本地设备中的仓库以及远程仓库中下载保存的仓库统称为本地仓库私有仓库公司内部仓库比如是有maven私服搭建的局域网仓库中央仓库开源社区仓库我们平时使用的第三方插件或者类库一般都存储在中央仓库比如Maven Central阿里的国内镜像库等 2.2仓库构建顺序: 1.在本地仓库中查找对应的类库没有找到执行22.按照repositories中声明的仓库顺序在私有仓库和中央仓库查找对应的类库找到则将类库版本信息下载到本地仓库没找到则执行33.前面都没找到对应的类库或者类库版本则抛出异常‘没找到对应的类库’ 2.3仓库声明方式 项目build.gradle buildscript {repositories {[Gradle 插件的仓库]        } } allprojects {repositories {[项目中所有模块依赖的仓库]  } }模块内build.gradle repositories{[当前模块依赖的仓库] }gradle支持的仓库类型 repositories{maven { url ... }ivy { url ... }flatDir { dirs ... } }常用的中央仓库 google() // https://dl.google.com/dl/android/maven2/ mavenCentral() // https://repo.maven.apache.org/maven2/ jCenter() 网络不好的情况下访问上面的中央仓库会有点慢可以开考虑使用国内镜像代理 maven { url http://maven.aliyun.com/nexus/content/repositories/google } maven { url http://maven.aliyun.com/nexus/content/groups/public/ } maven { url http://maven.aliyun.com/nexus/content/repositories/jcenter}3.有了Release版本为啥还需要SNAPSHOT 区别 1.Release版本每次升级都需要更新版本而SNAPSHOT不需要更新版本使用原版本即可2.Release版本如果版本没有更新不需要每次都去下载除非本地仓库被清除而SNAPSHOT版本每次编译都需要去中央仓库更新版本信息3.常规Release版本是发布上线的版本SNAPSHOT是测试版本。4.版本名Release版本1.0.0SNAPSHOT版本1.0.0-SNAPSHOT 使用场景 A和B共同开发如果A修改了代码 使用常规Release版本则需要每次都发布一个新版本如果不小心忘记增加版本B则无法收到更新后的版本 造成代码不同步后期会出现不可预料的bug。 使用SNAPSHOT只要A发布了版本B在每次编译时就可以立即收到A的类库更新信息可以实时同步代码。 SNAPSHOT以牺牲编译时间换取代码之间的立即可见度缺点就是在网络较差的情况下代码编译时间可能常常比较慢。 如何发布组件 1.发布到本地仓库 模块级build.gradle plugins {id groovy // Groovy Language // id org.jetbrains.kotlin.jvm // Kotlinid java-gradle-plugin // Java Gradle Pluginid maven } ... uploadArchives {repositories {mavenDeployer {repository(url:uri(D:/maven_local))pom.groupId com.yuhb.uploadpom.artifactId uploadpom.version 1.0.1}} } 同步模块后点击Gradle面板中对应模块下Tasksupload里面的uploadArchives任务 如果执行成功则会在对应的本地目录下找到类库信息 2.搭建maven私服创建私有仓库 简介 maven私服其实就是在部门·局域网·中设置一个maven仓库所有在局域网中的开发人员都可以使用该仓库 PS:私服中可以添加自己本地的仓库也可以代理中央仓库中的包。毕竟对于一些网络比较差的环境去中央仓库里面获取数据是一个很耗时的操作 优点 1.节省自己的外部带宽 2.加速构建过程 3.可以部署第三方构件 4.提高稳定性增强控制 5.降低中央仓库的负荷 如何搭建Maven私服 1.去官网下载 maven私服启动器   nexus: 地址www.sonatype.com/ 2.下载后配置环境变量后 在命令行输入nexus /run 3.nexus启动成功后在浏览器中输入 http://localhost:8081/ 启动界面如下 点击右上角的sign in按钮 输入用户名和密码 用户名和密码系统会提示在哪个目录下 4.登录成功后 点击导航栏的设置按钮--repository进入仓库列表 点击create Repository创建一个新的本地局域网仓库 因为我们是为Android项目创建的maven仓库选择maven2 这里有三个maven2类型仓库 *hosted*:本地局域网私服像官方仓库一样提供本地私库功能 *proxy*提供代理其他仓库的功能表示这个repository可以代理远程仓库比如jcenter google 等远程中央仓库 *group*组合多个仓库为一个地址使用 这里我们选择hosted仓库即可大家可以根据自己需求选取 1.输入仓库名称 2.设置maven类型 *release*:表示是一个该仓库存储的是一个release版本的第三方库 *snapshot*表示存储的是一个不稳定第三方库需要进程去私服或者中央仓库拉数据 repositorysrepositoryid****/idurl***/urlsnapshotsenabledtrue/enabledupdatePolicy(always/ daliy/ interval/ never)/updatePolicy/snapshot/repository /repositoryupdatePolicy:表示更新的频率 always每次都需要拉去     daliy表示每天需要拉取     interval按分钟拉取     nerver和release版本一样不需要重复拉取 点击确定后就创建的一个maven私服 点击该仓库就可以看到对应的url这个url就是我们私服的地址。需要在项目中引用 经过上面的步骤后我们就搭建好了一个maven私服局域网内用户都可以拉取使用 实战中maven私服接入 第三方lib库的上传操作 使用as创建一个新的项目在新建项目下创建一个lib库命名为:lib_vedio:并在lib_vedio的build.gradle工程文件下面引入maven库: 实现uploadArchives的task方法这个方法用于上传lib库 plugins {id com.android.libraryid maven }//上传的类库名称 def _artifactId this.getName() //类库版本 def pomVersionName 1.0.1 def pomName this.getName() //类库描述 def pomDescription the vedio library for all projectuploadArchives {repositories {mavenDeployer {repository(url:NEXUS_REPOSITORY_URL) {authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)}pom.project {name pomNameversion pomVersionNamedescription pomDescriptionartifactId _artifactIdgroupId POM_GROUPIDpackaging POM_PACKAGING}}} }里面一些变量是在gradle.properties中设置的全局变量 NEXUS_REPOSITORY_URLhttp://localhost:8081/repository/anna_release/ POM_GROUPIDcom.anna.android POM_PACKAGINGaar NEXUS_USERNAMEadmin NEXUS_PASSWORDadmin123456设置好后执行uploadArchives任务这个时候我们本地的lib_vedio库就会上传到我们之前搭建的maven私服上 这里因为我们上传了两个版本1.0.0和1.0.1 切记 如果当前仓库选择的是release属性则每次上传的版本不能一致需要在原版本基础上增加 如果选择的是snapshot属性:则可以在不增加版本号的前提下修改同一版本的代码并上传。 maven私服仓库的接入 我们在项目的build.gradle文件中引入maven库 buildscript {repositories {google()jcenter()maven {url http://localhost:8081/repository/anna_release/credentials {username adminpassword admin123456}}}dependencies {classpath com.android.tools.build:gradle:4.1.1// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files} }allprojects {repositories {google()jcenter()maven {url http://localhost:8081/repository/anna_release/credentials {username adminpassword admin123456}}} }并在app模块引入lib库文件 implementation com.anna.android:lib_video:1.0.1这样就可以在我们项目中愉快使用类库啦。 3.如何发布到Github仓库 如果我们需要开源我们的代码就需要将仓库发布到公共仓库中 步骤1在项目级build.gradle中设置 buildscript {repositories {maven { url https://jitpack.io }}dependencies {classpath com.github.dcendents:android-maven-gradle-plugin:2.1} }allprojects {repositories {maven { url https://jitpack.io }} } 步骤2:在模块级build.gradle设置如下 apply plugin: com.github.dcendents.android-maven group com.github.xxx // xxx为github 的用户名步骤3将源码push到github上 步骤4在github上创建 Release Tag 步骤5打开jitpack.io 网址 点击look up 然后会显示出对应的编译版本信息: 红色代表编译失败 蓝色代表编译成功 可通过日志查看编译错误原因 步骤6类库引入在项目级 build.gradle 声明远程仓库在模块级 build.gradle 中依赖类库。 项目级build.gradle buildscript {repositories { ...maven { url https://jitpack.io }}dependencies {...classpath com.github.ByteYuhb.a_gradle_plugin_sample:uploadversion:1.0.3} }这里我们上传的是一个gradle插件库所以需要在buildscript中的dependencies声明插件版本信息。 模块级build.gradle apply plugin: com.yuhb.uploadversionInfo {versionName 1.0.0versionCode 1versionUpdateInfo 当前是第一个版本初始apk } 引入插件的group和扩展信息结果 在编译期打印出了Gradle插件中的信息 Task :app:uploadTask name:1.0.0 code:1 info:当前是第一个版本初始apk4.指定发布二进制文件 使用新版 Maven 插件可以直接以指定二进制文件的方式发布组件。例如 apply plugin: maven-publishpublishing {publications {[任务名](MavenPublication) {groupId MAVEN_GROUP_IDartifactId MAVEN_ARTIFACTIDversion MAVEN_VERSIONartifact([文件路径])}}repositories {maven {// 发布仓库路径url MAVEN_RELEASE_URL}} }如何封装一个通用发布版本 步骤1在项目根目录下创建 maven_publish.gradle apply plugin: mavenuploadArchives {repositories {mavenDeployer {// 是否快照版本def isSnapShot Boolean.valueOf(MAVEN_IS_SNAPSHOT)def versionName MAVEN_VERSIONif (isSnapShot) {versionName -SNAPSHOT}// 组件信息pom.groupId MAVEN_GROUP_IDpom.artifactId MAVEN_ARTIFACTIDpom.version versionName// 快照仓库路径snapshotRepository(url: uri(MAVEN_SNAPSHOT_URL)) {authentication(userName: MAVEN_USERNAME, password: MAVEN_USERNAME)}// 发布仓库路径repository(url: uri(MAVEN_RELEASE_URL)) {authentication(userName: MAVEN_USERNAME, password: MAVEN_USERNAME)}println(################################### \nuploadArchives pom.groupId : pom.artifactId : pom.version . pom.packaging \nrepository (isSnapshot ? MAVEN_SNAPSHOT_URL : MAVEN_RELEASE_URL) \n###################################)}} }这段脚本会读取 MAVEN_IS_SNAPSHOT 配置参数如果为 true会在版本号后追加 -SNAPSHOT 后缀表示快照版本。随后声明了两个仓库repository(...) 声明的是 Release 仓库地址而 snapshotRepository(...) 声明的是快照仓库地址。Maven 会自动将版本号带 -SNAPSHOT 后缀的组件发布到 snapshotRepository(...) 仓库中这样就 自动将正式版本和快照版本分发的不同仓库中。 步骤2声明项目级gradle.properties配置参数 MAVEN_SNAPSHOT_URL /Users/yuhb/workspace/public/DemoHall/snapshotRepository MAVEN_RELEASE_URL /Users/yuhb/workspace/public/DemoHall/releaseRepository MAVEN_USERNAME MAVEN_PASSWORD MAVEN_IS_SNAPSHOT true MAVEN_GROUP_ID com.yuhb.demo 参数描述MAVEN_SNAPSHOT_URL快照仓库地址MAVEN_RELEASE_UR发布仓库地址MAVEN_USERNAME仓库账号MAVEN_PASSWORD仓库密码MAVEN_IS_SNAPSHOT是否快照版本MAVEN_GROUP_ID组织 / 公司的名称MAVEN_ARTIFACTID组件的名称在发布模块配置MAVEN_VERSION组件的版本在发布模块配置 步骤 3在发布模块应用脚本 apply from: ../maven.gradle ...步骤 4在发布模块配置参数 模块级配置参数会覆盖项目级配置参数 模块级 gradle.properties MAVEN_ARTIFACTID maven MAVEN_VERSION v1.0.0 MAVEN_IS_SNAPSHOT true ...然后在Gradle面板中找到对应模块下的任务uploadArchives执行成功后就可以将组建发布对应的maven私服上了 本地aar文件引入 模块级build.gradle dependencies {...api(name: lib-debug, ext: aar) }repositories {flatDir {dirs libs} }这种方式如果其他模块需要使用就不方便 方法1 在项目级build.gradle allprojects {repositories {google()mavenCentral()flatDir { dirs project(:aarlib).file(libs) } // 文件夹要放在某个 module 内} }这种方式可以在本工程中使用如果跨工程或者跨设备就不好使了 方法2二次打包aar发布到maven仓库 apply plugin: maven-publishdef libPath project.getProjectDir().getAbsolutePath()publishing {publications {lib1(MavenPublication) {groupId MAVEN_GROUP_IDartifactId libversion v1.0.0artifact(libPath /libs/lib.aar)}lib2(MavenPublication) {groupId MAVEN_GROUP_IDartifactId lib2version v1.0.0artifact(libPath /libs/lib2.aar)}}repositories {maven {// 发布仓库路径url MAVEN_RELEASE_URL// 本地仓库地址不适用账号密码// Failed to publish publication maven to repository maven// Authentication scheme all(Authentication) is not supported by protocol file// credentials(PasswordCredentials) {// username MAVEN_USERNAME// password MAVEN_PASSWORD// }}} }
http://www.hkea.cn/news/14279608/

相关文章:

  • 制作网站的成本google play官网
  • 辽宁省朝阳市做网站网站建设的项目说明书
  • 网站做二级目录跟二级域名的区别不能访问子目录的网站
  • wordpress 分类 输出手机网站优化公司
  • 购物车功能网站怎么做的呼和浩特做网站
  • 哪类网站赚钱 优帮云石家庄网站改版
  • 网站建设项目进展情况视频点播网站建设
  • 网站文件上传wordpress修改宁波正规seo推广
  • 济南网站微信开发软件app需要具备的知识
  • html网站地图制作公司网站建设的改进的建议
  • 网站建设工作室赚钱吗聚合搜索引擎接口
  • 深圳竞价网站商务网站的建设步骤
  • 长沙银狐做网站营销型网站建设公司推荐
  • 杭州知名的企业网站建设策划外贸自建站平台排名
  • 用DW做的网站生成链接淄博做网站小程序的公司
  • 苏州网站建设方案外包南通网站建设优化
  • 汕头建站程序自助下单网站怎么做
  • 建设网站需要有什么特色wordpress清除无用的数据库表
  • 哪个网上购物网站好大连甘井子区房价
  • 企业网站seo方案东莞百度seo哪里强
  • 丰镇网站建设建了一个网站 如何找到放图片的文件夹
  • 邯郸论坛网站建设公司名字参考大全
  • 成都个人兼职做网站photoshop网站模板下载
  • 网站建设与管理常用如何在网站上做免费代理
  • 城乡住房和城乡建设厅网站成都锦江规划建设局网站
  • 渭南商铺网站建设wordpress恋月
  • 网站维护团队北京企业网站模板建站开发
  • 网站建设找天宇智能花艺企业网站建设项目规划
  • 站长之家官网手机之家官网首页
  • 个人网站空间网站建设的费用结构包括