Как стать автором
Обновить

Комментарии 12

Спасибо за статью, очень основательное руководство.

Теперь, если вы не хотите подписывать артефакты и загружать их в репозиторий вручную, нужно
настроить мавен, чтобы он делал это за вас.
А можете все-таки описать процесс ручного подписывания?
Я сам об этом подумывал. Наверное, всё же опишу, как найдётся время.
Какой-же все таки ад этот ваш Maven Central. Руководство публикации в Bintray умещается в 5 минутный скринкаст.
Спасибо за наводку.
Но, как я понимаю, публикация в JCenter так же ожидает «ручного» одобрения?
Публикация в Bintray полностью self-service. После этого все могут им пользоваться из вашего репозитория.

Включение своего пакета в чужой репозиторий требует одноразового одобрения хозяина репозитория. JCenter в данном случае исключение только в том, что «хозяин» всегда онлайн и одобряет за пару минут.
Да, спасибо, вижу, одобрили через несколько часов.
Раньше «хостил» свои мелочи на github-е, но тут, думаю, будет удобнее.
Отлично!

happy publishing!
Хочу заметить следующее. Я использую Git на Windows, и у меня возникли проблемы c maven-release-plugin — он пытался выполнить пуш в репозиторий, но почему-то не смог сам подобрать и ввести логин/пароль (хотя я указал аттрибуты доступа в настройках мейвена). Долго копался с этой проблемой. Думал попробовать пушить не по https, а по ssh, но стало лень ставить ssh. В итоге проблема была решена с помощью утилиты git-credential-winstore. Эта программка позволяет использовать Git credential helper под виндой. В итоге я вначале сделал «пустой» пуш, ввел креденшлсы, сохранил их, и потом уже мейвен смог выполнить свой алгоритм действий по добавлению релиза в staging.

Надеюсь, кому-то поможет и сэкономит время.
Через некоторое время сотрудник Sonatype создаст набор репозиториев для вас и закроет тикет.

Главное, чтобы не забыл ручку генератора перед этим покрутить, а то электроны в джире не закончатся.
Спасибо, отличная статья! Сделал все как описывается (кроме хранения паролей вне settings.xml)
Единственная проблема была в создании фейкового javadoc.jar, т.к. этот файл в упор не хочется генерится maven-javadoc-plugin -ом в scala проекте.
Обошел следующим образом
<plugin>
            <artifactId>maven-jar-plugin</artifactId> <!-- Making fake javadoc -->
            <version>2.4</version>
			<executions>
				  <execution>
					<phase>package</phase>
					<goals>
					  <goal>jar</goal>
					</goals>
					<configuration>
					  <classesDirectory>${basedir}/javadoc</classesDirectory>   
					  <classifier>javadoc</classifier>
					  <includes>
						  <include>*</include>                  
					   </includes>
					</configuration>
				  </execution>
			</executions>
      </plugin>      

где директория ${basedir}/javadoc содержит README файлик с текстом «javadoc is not provided for scala project», он упаковывается в архив по рекомендации Sonatype.
У меня возникла проблема, при выполнении команды mvn release:prepare, прогресс зависает на git push:
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\MY_PROJECT_DIR
[INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\MY_PROJECT_DIR
[INFO] Executing: cmd.exe /X /C "git commit --verbose -F C:\Users\MY_USER_NAME\AppData\Local\Temp\maven-scm-298314821.commit pom.xml"
[INFO] Working directory: C:\MY_PROJECT_DIR
[INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD"
[INFO] Working directory: C:\MY_PROJECT_DIR
[INFO] Executing: cmd.exe /X /C "git push https://github.com/MY_LOGIN/MY_PROJECT_NAME.git master:master"
[INFO] Working directory: C:\MY_PROJECT_DIR

В pom.xml прописано:
    <scm>
        <connection>scm:git:https://github.com/MY_LOGIN/MY_PROJECT_NAME.git</connection>
        <developerConnection>scm:git:https://github.com/MY_LOGIN/MY_PROJECT_NAME.git</developerConnection>
        <url>https://github.com/MY_LOGIN/MY_PROJECT_NAME</url>
    </scm>


В settings.xml:
      <server>
          <id>github.com</id>
          <username>MY_LOGIN</username>
          <password>MY_PASSWORD</password>
      </server>

Весь день безуспешно провозился, играя, с настройками scm в pom.xml и server в settings.xml. Прошу помочь.
Боюсь, я не смогу вам помочь :( выглядит как проблема с git под windows. Я всё манипуляции проводил под Linux, и у меня проблем не было. Может быть, гит просит пароль; попробуйте использовать не https:// для developerConnection, а git@github.com:MY_LOGIN/MY_PROJECT_NAME.git, но это требует правильной настройки ssh.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.