// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= 外部ツールおよびサービスとの統合
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: 外部ツールおよびサービスとの統合 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, 外部ツールおよびサービスとの統合

様々なタイプのアプリケーションの開発を容易にするため、NetBeans IDEでは、いくつかの外部ツールおよびサービスとの統合が提供されています。次に一覧表示するリソースでは、そのようなツールやサービスを構成および使用する方法を学習でき、たとえば、データベースへの接続、バージョン管理ソフトウェアを使用したソース・コードの管理、統合された問題トラッカのサポートの使用などがあります。

== チュートリアルおよび記事

=== データベース

* link:../docs/ide/oracle-db.html[+NetBeans IDEからのOracleデータベースへの接続+]
* link:../docs/ide/java-db.html[+Java DB (Derby)データベースの操作+]
* link:../docs/ide/mysql.html[+MySQLデータベースへの接続+]
* link:../docs/web/mysql-webapp.html[+MySQLデータベースを使用した単純なWebアプリケーションの作成+]
* link:../docs/ide/install-and-configure-mysql-server.html[+Windowsオペレーティング・システムでのMySQLデータベース・サーバーの設定+]

=== Maven

* link:../docs/java/maven-hib-java-se.html[+Hibernateを使用したMaven Swingアプリケーションの作成+]
* link:http://wiki.netbeans.org/MavenBestPractices[+Mavenのベスト・プラクティス+]

=== ソース・コードの管理

* link:../docs/ide/mercurial-queues.html[+NetBeans IDEでのMercurial Queuesサポートの使用+]
* link:../docs/ide/git.html[+NetBeans IDEでのGitサポートの使用+]
* link:../docs/ide/mercurial.html[+Netbeans IDEでのMercurialサポートの使用+]
* link:../docs/ide/subversion.html[+Netbeans IDEでのSubversionサポートの使用+]
* link:../docs/ide/cvs.html[+Netbeans IDEでのCVSサポートの使用+]
* link:../docs/ide/clearcase.html[+Netbeans IDEでのClearCaseサポートの使用+]

=== 共同開発

* link:../docs/ide/team-servers.html[+NetBeans IDEでのチーム・サーバーの操作+]

=== 最適化

* link:../docs/java/profile-loadgenerator.html[+NetBeans IDEでの負荷ジェネレータの使用+]

== スクリーンキャスト

* link:../docs/ide/github_nb_screencast.html[+デモ: NetBeans IDEを使用したGitHubリポジトリの設定+]
* link:../docs/ide/git_nb_ssh_screencast.html[+デモ: NetBeans IDEを使用したGitリポジトリのクローン+]
* YouTube: link:http://www.youtube.com/watch?v=mQS-CViDHBU[+NetBeans IDEでのFindBugs+] (_Geertjan Wielenga作成_)

== コミュニティの寄稿ドキュメント

* Geertjanのブログ: link:https://blogs.oracle.com/geertjan/entry/git_in_netbeans_ide_7[+NetBeans IDEでのGitとリベース+]
* link:http://wiki.netbeans.org/TutorialUsingSVNLocalRepository[+Subversion (SVN)ローカル・リポジトリの使用+]
* link:http://wiki.netbeans.org/AccessMssql[+NetBeansからのMS Access/MS SQLへのアクセス+]

== その他のリソース

* _NetBeans IDEによるアプリケーションの開発_のlink:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG1790[+データベースの使用と接続+]
* _NetBeans IDEによるアプリケーションの開発_のlink:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG620[+NetBeansでのMavenの使用+]
* _NetBeans IDEによるアプリケーションの開発_のlink:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG234[+バージョン管理によるアプリケーションのバージョニング+]
* _NetBeans IDEによるアプリケーションの開発_のlink:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG348[+コラボレーション環境での作業+]
* link:http://wiki.netbeans.org/NetBeansUserFAQ#Version_Control_Systems[+バージョン管理のFAQ+]
* link:http://wiki.netbeans.org/NetBeansUserFAQ#Database_Connectivity[+データベース接続のFAQ+]
* link:http://www.mysql.com/why-mysql/java/[+MySQLとJava - リソース+]
