Опубликовать пакет JAR на центральный репозиторий Maven

maven

Опубликуйте пакет jar в центральном репозитории maven.

Недавно я сделал проект swagger-ui с открытым исходным кодом.Поскольку он использует vue для разбора swagger-json, ему нужна поддержка внешнего интерфейса.Чтобы легко использовать эту функцию на внутреннем уровне, скомпилированный результат проекта vue: поместить в пакет jar Центральный репозиторий maven доступен для тех, кто в нем нуждается.

Другим преимуществом превращения интерфейсных проектов в jar-файлы для внутреннего использования является то, что некоторые проекты могут не иметь междоменных настроек. root и может быть легко использован.

подать заявку на groupId

Центральный репозиторий представляет собой набор множества jar-файлов, а уникальность идентификации для использования maven определяетсяgroupId,artifactId,versionОн состоит из трех элементов, первый — единственный, который нам нужен извне, а последние два — для нашего собственного планирования и использования, поэтому самое главное для загрузки на центральный склад — подать заявку на одинgroupId,этоgroupIdс пакетом jar, который вы хотите загрузитьgroupIdдолжны быть последовательными.

Зарегистрировать аккаунт

Зарегестрированный адрес:вопросов.так что type.org/secure/sign…

Номер учетной записи и пароль будут использоваться при входе в систему рабочих заданий и отправке, поэтому вам необходимо помнить об этом.

применить идентификатор группы

Адрес приложенияIssues.so что type.org/secure/dash…

Нажмите «Создать».

deploy_new

  • проект:Community Support - Open Source Project Repository Hosting
  • тип вопроса:New Project
  • Резюме: Опишите, что вы собираетесь делать, попробуйте использовать английский язык, вы можете использовать Youdao для помощи в переводе.
  • Описание: Может быть пустым, вы можете просто написать, почему вы хотите подать заявку на одинgroupId
  • Идентификатор группы: очень важно, заполните уникальный идентификатор, обычно с собственным доменным именем, напримерcom.tennetcn.freeЭто, в настоящее время также может бытьgithubпользователи, могут заполнитьcom.github.chfreeТакого рода. Независимо от того, какой из них вы заполните, должны быть соответствующие правила проверки У меня есть собственное доменное имя, и я сделал регистрацию доменного имени.TXTРазбор проверки
  • URL-адрес проекта: вы можете указать адрес вашего проекта с открытым исходным кодом.
  • URL-адрес SCM: может использоваться сproject urlтот же адрес
  • Уже синхронизировано с Centra: готова ли она к синхронизации с центральным репозиторием, если да, она перезапишет предыдущую сборку.

Затем нажмите «Создать».Если время совпадает, кто-то может немедленно ответить на заказ.Если это ваше собственное доменное имя, вам нужно сделать это.TXTРазбор проверки.

Запомнить: После того, как кто-то еще ответил на рабочий порядок, вы выполнили операцию по разрешению по соответствующей информации порядка работы или на доменном имени, обязательно сделайте этоCommentОперация похожа на сообщение обработчику текущего наряда, я уже выполнил вашу операцию, вы смотрите смысл. В противном случае, если вы будете долго ждать, у вас не будет хода выполнения заказа.

В конце концов, будет следующий ответ, и статус рабочего задания будет решен. Если вы успешно загрузите, вы можете вернуться и закрыть эту проблему. Фактически, вы использовали систему управления дефектами, такую ​​​​как jira, что легко понять.

com.tennetcn.free has been prepared, now user(s) chfree can:

Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots
Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2
Release staged artifacts into repository 'Releases'
please comment on this ticket when you promoted your first release, thanks

обработка шифрования gpg

Это метод шифрования на основе ключей, который использует пару ключей для шифрования и дешифрования сообщений, чтобы обеспечить безопасную передачу сообщений.

windows,mac,linuxЕсть соответствующие обычаи.

windowsОн разделен на следующие шесть шагов.Я думаю, что следующие шесть шагов можно использовать в командной строке.

  1. Загрузить и установитьGPGокружающая обстановка
    ссылка на скачивание:www.gpg4win.org/

  2. Проверьте, прошла ли установка успешно
    Откройте окно командной строки cmd и введите

gpg --version

Успешный вывод после выполненияgpgВерсия - успешная установка

  1. сгенерировать ключ
    выполнение командной строки
gpg --gen-key

Введите свое имя пользователя и адрес электронной почты, как будет предложено, иPassphase, остальную информацию можно использовать по умолчанию,PassphaseЭто пароль, его нужно запомнить и загрузить позжеjarиспользуется при упаковке

  1. Посмотреть открытый ключ
    воплощать в жизнь
gpg --list-keys

Выведите следующую информацию

/Users/chenghuan/.gnupg/pubring.kbx
--------------------------------------------------------
pub   rsa4096 2020-04-24 [SC] [有效至:2024-04-24]
      29B9DBA6638B7D0DCFFA84ECBB95DD3381441B80
uid           [ 绝对 ] chfree <chfree365@qq.com>
sub   rsa4096 2020-04-24 [E] [有效至:2024-04-24]

где шестнадцатеричная строка29B9DBA6638B7D0DCFFA84ECBB95DD3381441B80сгенерированный открытый ключid

  1. опубликовать открытый ключ воплощать в жизнь
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 29B9DBA6638B7D0DCFFA84ECBB95DD3381441B80

опубликовать открытый ключ дляPGPПосле сервера ключей вы можете использовать локальный закрытый ключ для цифровой подписи компонента загрузки, компонент загружается, и пользователь может загрузить его для проверки общедоступной подписи, то есть мы можем проверить, были ли загружены мной члены , потому что возможно, что член был плохо подделан.

  1. Убедитесь, что выпуск прошел успешно
    воплощать в жизнь
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 29B9DBA6638B7D0DCFFA84ECBB95DD3381441B80

успешный выводgpgКлючевая информация успешно выпущена

я используюmacтот, что наGPG Keychain, адрес загрузкиgpgtools.org/Более дурацкая работа интерфейса.

загрузка пакета проекта

проект должен бытьjarПосылка загружается на центральный склад, иjarНам нужно использовать нас в процессе упаковкиgpgСгенерированная ключевая информация, конечно самое главное это конфигурацияpomдокумент

настроить settings.xml

существуетsetting, в основном настройте учетную запись и пароль, которые мы зарегистрировали на первом шаге, потому чтоsetting.xmlявляется локальным, в то время какpom.xmlОн должен быть загружен на исходный сервер, поэтому он находится вsetting.xmlсередина.

можно найтиideсоответствующийmavenэлемент конфигурации, текущийideсоответствующийsetting.xmlПо какому пути, если нет конфигурации, можно скачатьapache-mavenПакет после распаковки содержитsetting.xmlнастроить

существуетsetting.xmlКонфигурация выглядит следующим образом:

<server>
  <id>maven_nexus_repo</id>
  <username>username</username>
  <password>password</password>
</server>

этоidНастройка сзадиpom.xmlбудет использоваться, когдаdeployПри работе он основан наidимя от этогоsetting.xmlИзвлеките имя пользователя и пароль для проверки разрешения на загрузку.

настроить pom.xml

СвязанныйxmlКонфигурация и загрузка будут провереныdoc jar,source jarПакет конфигурации плагина , был вставлен ниже, следует отметить, чтоlicenses,developers,scmНесколько нод в процессе компиляции и загрузки не требуются, но когда билд будет выпущен, он будет проверен, а если его нет, то проверка завершится неудачно, поэтому лучше выполнить ее с самого начала.

Загрузка очень простая, прямаяmvn deployХорошо, если этоidea,существуетmavenпанели инструментов, выберите соответствующий пункт для выполненияdeployпросто работай

Уведомление: Если соответствующий пакет jar не может быть загружен в процессе компиляции, необходимо посмотреть, куда загружается загруженный jar.repo1.maven.orgЭтот центральный склад, мы должны обратить внимание наhttpещеhttps, если окажется, что это http, то его необходимо изменитьsetting.xmlВнутри ссылки на репозиторий вhttpдляhttps,потому чтоmaven.orghttp больше не поддерживается.

<modelVersion>4.0.0</modelVersion>
<groupId>com.tennetcn.free</groupId>
<artifactId>think-swagger-ui-starter</artifactId>
<packaging>jar</packaging>
<version>0.0.4</version>
<description>swagger-ui</description>
<url>https://github.com/chfree/think-free-base</url>

<licenses>
    <!-- MIT许可证 -->
    <license>
        <name>MIT License</name>
        <url>http://www.opensource.org/licenses/mit-license.php</url>
    </license>
    <!-- Apache许可证 -->
    <!-- <license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</license> -->
</licenses>
<developers>
    <developer>
        <name>chfree</name>
        <email>chfree365@qq.com</email>
        <url>http://www.tennetcn.com</url>
    </developer>
</developers>

<scm>
    <tag>master</tag>
    <connection>https://github.com/chfree/think-free-base</connection>
    <developerConnection>https://github.com/chfree</developerConnection>
    <url>https://github.com/chfree/think-free-base/tree/master/think-swagger-ui-starter</url>
</scm>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-gpg-plugin</artifactId>
        <version>1.6</version>
    </dependency>
</dependencies>

<profiles>
    <profile>
        <id>ossrh</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <plugins>
                <!-- 要生成Javadoc和Source jar文件,您必须配置javadoc和源Maven插件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar-no-fork</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--  必须配置GPG插件用于使用以下配置对组件进行签名 -->
                <!-- GPG -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>1.6</version>
                    <executions>
                        <execution>
                            <phase>verify</phase>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
        <distributionManagement>
            <snapshotRepository>
                <!-- 这个id需要在setting.xml中设置  -->
                <id>maven_nexus_repo</id>
                <name>maven_nexus_repo</name>
                <!-- 这里的url就是Issue中回复的snapshots 的repo地址-->
                <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            </snapshotRepository>
            <repository>
                <id>maven_nexus_repo</id>
                <name>maven_nexus_repo</name>
                <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
            </repository>
        </distributionManagement>
    </profile>
</profiles>

Компонентные складские операции

Когда все загрузки будут обработаны, вам необходимо войти в систему по адресу выпуска сборки, потому что теперь все операцииjarПакет выпускается в репозиторий кеша, и требуются последующие операции для его выпуска в официальный репозиторий, иначе он будет опубликован в официальном репозитории.search.maven.orgНичего не могу найти в нем.

Адрес выпуска сборки:oss.sonatype.org/#welcome

Имя пользователя и пароль — это имя пользователя и пароль, примененные на первом этапе.

После входа в систему слева есть несколько меню, вStaging RespositoriesНиже вы можете увидеть наш последний кешjarсписок, выберите соответствующие данные, нажмите на панели инструментов вышеclose, сначала отключите состояние кеша. подождите некоторое время, обновите текущую запись, запись неopenПосле этого можно поставить галочкуrelease.

Если загруженоjarНе соответствует спецификации, как правило, не стандартизирован или не в пом.doc jar,source jarд., и будетcloseБудут предложены соответствующие исключения, нам нужно только разрешить соответствующие исключения для повторной загрузки, в настоящее время нет необходимости изменять номер версии.

когда ты сделалreleaseПосле этого вы получите электронное письмо на адрес электронной почты зарегистрированной учетной записи, в котором сообщается, что выпуск прошел успешно, но вsearch.maven.orgискал в2小时о. Но в принципе пройти можноpomскачать вашjar.